Jestem nowy w ElasticSearch i Couchbase. Buduję przykładową aplikację Java, aby dowiedzieć się więcej o ElasticSearch i Couchbase.ElasticSearch - Korzystanie z FilterBuilders
Czytanie ElasticSearch Java API, Filtry są lepiej stosowane w przypadkach, gdy sortowanie według wyniku nie jest konieczne i dla buforowania. ja wciąż nie zorientowali się, jak korzystać z FilterBuilders i mają następujące pytania:
- Czy
FilterBuilders
być stosowany samodzielnie szukać? - Lub Czy zawsze muszą być używane z
Query
? (Jeśli to prawda, czy ktoś może podać przykład?) - Przechodząc przez dokumentację, jeśli chcę przeprowadzić wyszukiwanie w oparciu o wartości pól i chcę użyć FilterBuilders, jak mogę to zrobić? (Przy użyciu
AndFilterBuilder
lubTermFilterBuilder
lubInFilterBuilder
? Nie jestem jasne o różnicach między nimi.)
o 3 pytania, to faktycznie przetestowane z wyszukiwania za pomocą zapytań i stosując filtry, jak pokazano poniżej. Mam pusty wynik (bez wierszy), gdy próbowałem wyszukiwania przy użyciu FilterBuilders
. Nie jestem pewien, co robię źle.
Dowolne przykłady będą pomocne. Miałem ciężki czas na przeglądanie dokumentacji, którą uważałem za rzadką, a nawet wyszukiwanie prowadziło do różnych niewiarygodnych forów użytkowników.
private void processQuery() {
SearchRequestBuilder srb = getSearchRequestBuilder(BUCKET);
QueryBuilder qb = QueryBuilders.fieldQuery("doc.address.state", "TX");
srb.setQuery(qb);
SearchResponse resp = srb.execute().actionGet();
System.out.println("response :" + resp);
}
private void searchWithFilters(){
SearchRequestBuilder srb = getSearchRequestBuilder(BUCKET);
srb.setFilter(FilterBuilders.termFilter("doc.address.state", "tx"));
//AndFilterBuilder andFb = FilterBuilders.andFilter();
//andFb.add(FilterBuilders.termFilter("doc.address.state", "TX"));
//srb.setFilter(andFb);
SearchResponse resp = srb.execute().actionGet();
System.out.println("response :" + resp);
}
- -UPDATE--
Jak sugeruje odpowiedź, zmieniając na małe "TX" dzieła. Po rozwiązaniu tego pytania. Nadal mam następujące pytania:
- W jakim scenariuszu (-ach) są używane filtry z zapytaniem? W jakim celu to będzie służyć?
- Różnica między
InFilter
,TermFilter
iMatchAllFilter
. Pomocna będzie każda ilustracja.
Masz rację, ja edycji posta, aby ustawić filtr na searchrequestbuilder. i zmieniając na "tx" widzę wyniki! dzięki. Zmieniłem post, aby uwzględnić to i kilka pytań, które wciąż trwają ... dziękuję jeszcze raz. –
Zaktualizowałem swoją odpowiedź zgodnie z zaktualizowanym pytaniem, sprawdź to. – javanna
Spójrz na ten przykład wyszukiwania na przykład link jest zepsuty. –