Jak pobrac dane uzytkownika z tabeli opartej Elastic Search i Symfony w wersji 3.4?

0

Witam,

Mam projekt oparty na symfony i elastic search. Mam w tabeli events wsyzstkich uzytkownikow i ich dane. Teraz pytanie jak moge pobac tych uzytkownikow i ich dane? Czy te ES dziala podobnie jak SQL? Jak mam zaczac z tym ES? Jakies konkretne podpowiedzi?

0

W sensie że o co pytasz konkretnie?

Jeśli nie masz w ogóle pojęcia jak działa ES, wpisz w Google elasticsearch tutorial lub kup jakąś książkę i zacznij się uczyć.
Jeśli natomiast trapi Cię konkretne pytanie, zadaj je.

0

@Patryk27: Mam konkretne pytanie. W tej jednej tabeli events mam wszystkich uzytkownikow oraz punktu jakie zebrali (system lojalnosciowy). Czy jednym zapytaniem 'SQL' moge pobrac wszsytkich uzytkownikow i zliczyc ile maja punktow z kazdej transackji? Czy mam Najpierw pobrac wszystki uzytkownikow przez ES, pozniej dla kazdego uzytkownika pobrac wszsytkie transakcje i przez foreach obliczyc ilosc punktow. Nie kumam tego ES. Musze poczytac.... Ale mozesz mi objasnij chociaz w 2 zdaniach jak to mam to rozwiazac?

1

W tej jednej tabeli events [...]

ElasticSearch nie jest bazą relacyjną, więc nie zawiera tabel.

Czy jednym zapytaniem 'SQL' moge pobrac wszsytkich uzytkownikow i zliczyc ile maja punktow z kazdej transackji?

ElasticSearch nie jest bazą relacyjną, więc nie można na niej uruchamiać zapytań SQL.

Ale mozesz mi objasnij chociaz w 2 zdaniach jak to mam to rozwiazac?

Przy odpytywaniu ElasticSearch o dane wykorzystuje się ich własny język zapytań, za pomocą którego można także tworzyć zapytania agregujące, jeśli o to pytasz.

Ogólnie jednak zdaje się, że porwałeś się z motyką na słońce - ES jest bazą NoSQL i nie służy do trzymania danych, które są relacyjne (tak jak się zdaje w Twoim przypadku).

0

Pracuje na Divante Open Loyalty. Czyli istniejacy juz projekt. Nie tworze nic od nowa. Musze napisac raport ze statystykami tj ile jest laczenie uzytkownikow w systemi, ile maja punktow, ile wydali $$$, ile maja aktywnych punktow, ile zuzyli pkt itd itd

0

Cos znalazlem:

fieldName = 'transactionsCount';
        $query = array(
            'index' => $this->index,
            'body' => array(
                'aggregations' => [
                    'summary' => [
                        'sum' => ['field' => $fieldName],
                    ],
                ],
            ),
            'size' => 0,
        );

Na tej podstawie bede cos kombinowal, zeby dostac reszte agregacji.

0

Przerabial ktos tego Elastic search? Jaki link do dobrej ksiazki albo tutka, prosze?

0

Czy wersja ES:vnumber: "2.2.2", jest bardzo stara? Bo widze chyba sporo moze sie roznic jezeli chodzi o zapytania tj szukanie, filtrowanie i agregacja?

0
poniatowski napisał(a):

Czy wersja ES:vnumber: "2.2.2", jest bardzo stara? Bo widze chyba sporo moze sie roznic jezeli chodzi o zapytania tj szukanie, filtrowanie i agregacja?

nie no, co się mogło zmienić do wersji 6.4.2 xD

0

Dobrze mowie, ze to wersja 2.2.2. Looknie ktos: https://ibb.co/gvt5WL
Z drugiej strony w composer.js jest taki wpis: "elasticsearch/elasticsearch": "^5.0",

0

@Patryk27: Dobra, rozkminilem troche tego elastic search. W sumie na szybko moge napisac, ze mi sie nawet podoba. Przeanalizowalem strukture/mapping w mojej no-sql bazie. Mam teraz konkretne pytanie. Mam index z oloy.coupon_usage, ktory zawiera campaignId. Teraz index oloy.campaign_bought tez ma campaignId. Jak pisalem, uzywam ES w wersji 2.2.2. Jakis pomysl jak napisac takie zapytanie? Ktore laczy oba indexy?

1

No i git cos tam mi sie udalo zdzialac :D Nawet spoko te elastic search. W troche trudniejszych zapytaniach trzeba poszperac i pokombinowac, noo ale jakos to idzie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1