Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][SF2][Symfony2]ElasticSearch z Symfony2 (FosElasticBundle)
Forum PHP.pl > Forum > PHP > Frameworki
robert0770
Witam, korzystam aktualnie z sphinxa z symfony i problem jest taki że przebudowa indexów trwa zbyt długo i szukam czegoś z realTime-em(a z tego co się dowiadywałem sphinx z realTimem działa słabo) gdyż content jest często zmieniany, a musimy mieć możliwość np filtrowania po jakiś parametrach które są właśnie zmieniane w bazie.

Padło na elasticsearch i badam temat.

Załóżmy że skonfiguruje elastica tzn wszystkie pola(które mnie interesują) w configu itp następnie odpalę populate

Tworze nowa encje (lub update starą) następnie persist, flush

co teraz?

pakiet fos-elasticsearch jest na tyle inteligentny że doda/zaktualizuje rekord do elastica związany z tą encją?

Czy muszę wywołać po flushu jakąś funkcje elastica? czy może muszę korzystać z custom repository(fos - elastica) jeżeli chce żeby to automatycznie działało?

Czy możecie mnie nakierować na temat lub/i udostępnić jakąś obszerną dokumentacje? ta z githuba fos/elasticsearch jest dość okrojona
robert0770
ok dzięki wielkie! czyli wystarczy dodać wpis w configu i na podstawie operacji na encji, on sam sobie będzie aktualizował indexy?

druga sprawa to jak zdefiniować w tym elasticu index jeżeli nie ma faktycznej relacji tabela1->id_tabela2->tabela2, tylko mam zdefiniowaną tabele offer, offer_pl, offer_en i po kluczu głównym (id) np rekord 1. tabeli offer odpowiada rekordowi 1. tabeli offer_pl?
kpt_lucek
https://github.com/FriendsOfSymfony/FOSElas...lt-hydration.md

Powinno dac rade
robert0770
ok dzięki

Zacząłem implementacje

Po wpisaniu komendy fos:elastica:populate

dostaje błąd

  1. PHP Fatal error: Wrong parameters for Exception([string $exception [, long $code [, Exception $previous = NULL]]]) in /var/www/html/dev-xxx/vendor/ruflin/elastica/lib/Elastica/Exception/ResponseException.php on line 34


co ciekawe, z pustym configiem (elastica) błąd też występuje

czytałem że problem leży po stronie wersji, czy też tak uważacie? Jeżeli tak to prosze o pomoc w doborze bo nie mogę znaleźć żadnej tabelki z porównywaniem wersji

Symfony 2.3 (przy tym niestety musimy pozostać aplikacja jest zbyt duża żeby na ten moment zaktualizować wersje symfony)
FoSElasticBundle 3.2.2 (dowolna)
ElasticSearch 2.4.4 (dowolna ale potrzebny jest mi kibana - dowolna)
nospor
Cytat
ElasticSearch 2.4.4 - dowolne, ale potrzeba kibana
Nie bardzo rozumiem tutaj dwoch rzeczy. Podajesz wersje 2.4.4 a potem piszesz dowolna. To albo 2.4.4 albo dowolna. Poza tym najnowsza to 5 wzwyz
No i po co wymog na kibana jak bedziesz mial ElasticSearch. Kibana sluzy tylko do analizy/wizualizacji tego co juz masz w bazie elastic. Samego elastic mozesz uzywac bez posiadania kibany.


Ja tez pracuje na Symfony ale nie zdecydowalem sie na FosElastic. Po szybkiej lekturze odnioslem wrazenie, ze nie da mi takiej swobody i latwosci jak czyste api php od elastic search. Temu tez uzywam czystego api php elastic search i wszystko smiga az milo patrzec i dziala jak potrzebuje. Jak pokazalem szefowi indeksacje to zniedowierzaniem sie mnie dopytywal czy oby napewno indeksuje wszystok co trzeba bo dziala to zdecydowanie za szybko, hehe smile.gif
robert0770
to co jest w nawiasie przy wersji to jest sugestia
jak pewnie zauważyłeś to przy symfony mam info że tego "nie możemy zmienić" a przy reszcie informacja "dowolna" czyli nawiązując do mojej prośby
Cytat
Jeżeli tak to prosze o pomoc w doborze bo nie mogę znaleźć żadnej tabelki z porównywaniem wersji

oznacza to że możemy dobrać w tym miejscu odpowiednia wersje tak żeby działała z symfony 2.3

to że mam napisane w tym miejscu ElasticSearch 2.4.4 jest mało istotne bo możemy tą wersje zmienić bo nic na niej nie pracuje aktualnie

co do kibany jest mi potrzebna ponieważ jestem wzrokowcem i łatwiej mi się pracuje jak coś widzę a nie domniemam że to "może być tak"

to jak z phpmyadminem niby nie potrzebny ale lepiej jak jest, bo sobie można zerknąć
nospor
Rozumiem, nie mozesz zmienic Symfony, reszta dowolna. Temu mowie, ze moze warto wywalic FosElastic i jechac na api od elasticsearch-php

Tez mam kibane, bo mozna szybko zajrzec w dane. Ja sie przyczepilem jedynie do jej wymogu wink.gif W dane mozna zajrzec przy pomocy api rownie dobrze.

Cytat
to że mam napisane w tym miejscu ElasticSearch 2.4.4 jest mało istotne bo możemy tą wersje zmienić bo nic na niej nie pracuje aktualnie
macie wersje 2, aktualno to 5. Tu sie nie ma co mozowac, tylko trzeba to zmienic szczegolnie ze dopiero zaczynacie i nie ma powodu by siedziec na 2 smile.gif
robert0770
Bez Fos się raczej nie obejdzie na ten moment, aktualnie korzystamy ze sphinxa, logika jest spora, na dodatek nie ja to pisałem i nie znam elastica, starej ekipy już nie ma, termin jest napięty więc już wole użyć starszej wersji

zaimplementowaliśmy 1.7.3 i działa, dzięki za zainteresowanie wątkiem, pozdrawiam

mam już zaimplementowany częściowo elastic teraz stoję przed dziwnym problemem, kiedy zapisuje encje do bazy przez form->entity(form odpowiada wszystkim polą w encji) i nawet jak zmienię np tylko jeden parametr (choć jest ich np 10) to index sie fajnie aktualizuje ale jak już przez np funkcje ajaxową ktorą po stronie php działa na zasadzie find->id i w zwróconym objekcie robie setCostam persist i flush to nie aktualizuje mi się index, dlaczego?

edit.

ok już wiem czemu, kiedy zmieniam parametr w obiekcie który w indeksie jest jako nested i nie tworze zmian w głównym to główny nie jest flushowany do bazy wiec listener foselastika nie wie ze zostały wprowadzone zmiany w dziecku.

jakieś sugestie?

PS

zaznaczam ze dodanie mod_date do głównej encji mija się z celem gdyż zrobiłem to troche na opak

moje tabele to

ofe
ofe_pl
ofe_en
ofe_de

miedzy nimi jest relacja 1do1, zarówno z ofe mam dostep do ofe_pl i z ofe_pl do ofe

mod_date jest na ofe, a nie każde ofe ma wszystkie ofe_lang
np

ofe
1
2
3
4
5

ofe_pl
1
2

ofe_de
2
3

ofe_en
4
5

dlatego też nie mogłem wytworzyć indeksu z ofe bo dostawałem w brakujących miejscach doctrine.error

więc indeksy wytworzyłem z ofe_lang
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.