#programowanie #symfony #symfony2
No więc chce ogarnąć #elasticsearch
Znalazłem coś takiego:
https://github.com/FriendsOfSymfony/FOSElasticaBundle/blob/master/Resources/doc/setup.md
Czy to sprowadza się do instalacji elasticsearch + tego bundla i konfiguracji co wg dokumentacji (mapowanie encji itp) czy może to jest bardziej rozbudowane/złożone i czegoś nie wiem?
Może ktoś kilka słów o tym napisać?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ghost1511: Książki i dokumentacje mają trochę inny cel i przez to mają inną formę. Na ile akurat ta książka jest aktualna, to nawet nie wiem, bo dla mnie celem jej przestudiowania jest zapoznanie się z ideą i ogólną budową ES detale można sobie właśnie w dokumentacji wyszukać.
  • Odpowiedz
Mirki z #elasticsearch, mam do Was kolejne pytanko.
Jak z Waszego doświadczenia wygląda sprawa, jeśli chodzi o indeksowanie danych. Lepiej ładować dużo danych do jednego indeksu z podziałem na typy, czy lepiej rozbić na więcej indeksów?
Mam na myśli ilości danych rzędu 6-10 mln rekordów.
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie do Mirkow z #elasticsearch :
Mam w indeksie cztery kolumny: kol1, kol2, kol3 i kol4.

Jak zbudować zapytanie do Elastica, żeby zwróciło dane analogicznie, jak zapytanie sql w stylu:

select * from tabela where (kol1 = 'aa' or kol2 = '33') and (kol3 = 'zz' or kol4 = 'kk');
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie to speców od #elasticsearch.
Zacząłem bawić się tym silnikiem.
Zindeksowałem sobie jakąś tabelę.

Mam zapytanie SQL, które pobiera rekordy z tej tabeli - teraz chciałbym podmienić silnik i podłożyć elastica.
Czy jest jakiś sprytny sposób, żeby SQLowego WHERE sparsować do elasticowego
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zdzisiek-bula: W szukaniu największym problemem są dopasowania w nazwach. Cała reszta kolumn idzie bardzo prosto.

Tak więc, jeśli nazwy tych kilkudziesięciu szukających funkcji są ze sobą związane jakimś słowem ("szukaj", "search", itd), to przy pomocy debug_backtrace określasz źródło zapytania i jeśli znajdzie się tam odpowiednie słowo, to parsujesz zapytanie, wyciągasz where (.*) (z pominięciem order/group/limit) i wyciągasz kolumny zindeksowane przez elastic search. Wrzucasz do elastica pytanie o id dokumentów, sklejasz
  • Odpowiedz
Mirki z #elasticsearch, możecie polecić jakieś ciekawe tutoriale do niego?
Tyle, że chodzi mi o coś więcej, niż proste zapytania czy proste wrzucanie danych. Raczej interesuje mnie, jak używać tego w praktyce, kiedy przebudowywać indeksy, jak to najlepiej robić itp.
Jak mapować bazę SQL na Elastica, żeby przyspieszyć wyszukiwanie itd.
Ktoś coś? Z góry dzięki.
#programowanie #webdev
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zdzisiek-bula: Musisz odróżnić kiedy ty robisz update a kiedy w ES ten update jest przetworzony.
https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.html
Ja robię update co minutę, defaultowo ES robi commit zmian co jedną sekundę. Dlatego zawsze minimum tą sekundę musisz poczekać zanim dane będą dostępne. Nie zalecany jest ręczny commit (w ES zwany "refresh")

@Verbatino: Nie rozumiem zbytnio o co Ci może chodzić. W ES masz podobne typy jak wszędzie indziej https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html
To
  • Odpowiedz
@zdzisiek-bula: Nie zauważyłem żadnych problemów. Najdłuższe requesty jakie wykonuję to wyszukiwanie używająć wielu polygonów oraz multisearch 50 zapytań w jednym. Wszystko poniżej 100ms. Zwykłe wyszukiwanie < 10ms. Indeksowanie też prawie natychmiastowe. Mam kilka milionów rekordów.
  • Odpowiedz
Mirki w jaki sposób "debugujecie" sobie zapytania do #elasticsearch / tworzenie indeksu? Mam wrażenie, że strasznie na czuja póki co to robię, a dokumentacja też nie powala.

PS Plugin inquisitor też nie jest idealnym narzędziem - niewiele mi pomaga wyplucie na ekran to w jakis sposób mieli dany analyzer podaną frazę ...

#informatyka #programowanie
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy jest ktoś z was #januszeinformatyki kto używa w #php #mysql #elasticsearch i może mi wytłumaczyć jak usunąć stare rekordy z bazy elastica? Kiedy usunę coś z MySQL, to Elastic nieuaktualnia sobie tego :( Więc usunąłem wszystkie indexy z river włącznie i stworzyłem je na nowo. Niestety dalej mam te stare rekordy których już nie ma w bazie.
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@komplik: Są metody delete. Chcę dowiedzieć się czy jest "automatyczne" uaktualnianie rekordów. Jeśli usunę z bazy #mysql to czy jest jakaś komenda/metoda do automatycznego uaktualnienia #elasticsearch? Jeśli nie ma to znaczy, że muszę przy każdym zdarzeniu (update, insert, delete) w bazie MySQL uaktualnić indexy #elastic ?
  • Odpowiedz
https://github.com/elasticsearch/elasticsearch/issues/9177

W skrócie: twórcy ElasticSearch (firma, która do tej pory zebrała ponad $100M w 3 rundach finansowania) nie rozumieją różnicy pomiędzy kb a kB / Kb / KB i twierdzą, że to "uproszczenie" ("lowercased for simplification"). Co więcej, takie samo uproszczenie stosują nie tylko w dokumentacji, ale też w kodzie źródłowym. A człowiek się dziwi, że konfiguracja sobie, a rzeczywistość sobie, bo założył, że doświadczeni programiści rozumieją sens i wagę jednostek w IT
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 2
@M4ks: No, np przy podawaniu przepustowości kanałów w informatyce (np. łącz internetowych) często podaje się właśnie {kilo,mega,giga}-bity, a nie -bajty. Czyli odróżnianie b od B możemieć duże znaczenie.
  • Odpowiedz
@M4ks: Jak już zostało napisane wyżej - np. prędkości transmisji podaje się w bitach. Jeśli wiem, że moja karta ma 100 Mb i chcę ustawić parametr Elasticsearch odpowiedzialny za szybkość replikacji w taki sposób, żeby nie zapchać sobie więcej niż 20% pasma, to naturalnym jest, że jeśli zobaczę b, to pomyślę "o, ale fajnie, dla wygody zrobili parametr w bitach". To tak jakby inżynierowi projektującemu procesory podać miarę długości w
  • Odpowiedz
Mirki, ma ktoś jakąś biblioteke do php dla elasticsearch, która pozwala ogarnąć bardziej skomplikowane zapytania w prosty sposób? Wiem, że jest oficjalna biblioteka do tego, ale coś takiego do mnie nie przemawia:

$params['index'] = 'my_index';_
_
$params['type'] = 'my_type';

$filter
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach