Używam ElasticSearch w połączeniu z NEST w moim projekcie C#. Mój przypadek użycia zawiera kilka indeksów z różnymi typami dokumentów, które do tej pory osobno wysyłałem. Teraz chcę zaimplementować globalną funkcję wyszukiwania, która zapyta o wszystkie istniejące indeksy, typy dokumentów i poprawnie oceni wynik.NEST: Jak wykonywać kwerendy przeciwko wielu indeksom i obsługiwać różne podklasy (typy dokumentów)?
Moje pytanie: Jak to zrobić, używając NEST?
Obecnie używam funkcji SetDefaultIndex
, ale jak mogę zdefiniować wiele indeksów?
Może dla lepszego zrozumienia, to jest kwerenda chcę zrealizować z NEST:
{
"query": {
"indices": {
"indices": [
"INDEX_A",
"INDEX_B"
],
"query": {
"term": {
"FIELD": "VALUE"
}
},
"no_match_query": {
"term": {
"FIELD": "VALUE"
}
}
}
}
}
TIA
Witaj Martijn, dzięki za odpowiedź! Sposób na zapytanie o różne indeksy, które już wymyśliłem. Głównym problemem, z jakim obecnie borykam się jest to, że mam ** różne typy dokumentów o różnej strukturze ** przechowywane w indeksach takich jak książki, samochody itp. Mam na myśli twój przykład: klient. Wyszukiwarka MyObject będzie w moim Przypomnij sobie coś bardziej ogólnikowego, ponieważ chcę pobrać książki, samochody itp. za pomocą jednego zapytania. Próbowałem z typem ogólnym, ale bez powodzenia. –
Neil
Jedynym sposobem odzyskania dokumentów było użycie klienta. Wyszukiwarka (zapytanie).Dodałem również MapTypeIndices do ustawień połączenia (...). Czy mógłbyś podać przykład osiągnięcia czegoś takiego jak 'var results = Client.Search ????????????????==== .Indeksy (nowe [] {"Indeks książki", "Indeks samochodu"}) . Rozmiar (200) .MatchAll() ); " ) Czy polecasz inne podejście? Bardzo cenię sobie Twój wysiłek! – Neil
Aktualizacja: Aktualnie używam podstawowa klasa książek, samochodów itp., ale nie jest to czyste rozwiązanie. 'client.Search' –
Neil