2014-06-15 9 views
7

Przeglądałem dokumenty dla Search API, ale uważam, że nie są wystarczająco opisowe (nawet jeśli są bardzo dobrze napisane). Próbuję zbudować zapytanie, ale niewiele wiem o wszystkich dostępnych opcjach i nie mogę znaleźć informacji na ten temat, budując zapytanie i nie jestem w stanie przetłumaczyć zapytań, które mogę uruchomić w Sense, do zapytań, które mogę uruchomić przy pomocy Java API.Elasticsearch Java API - budowanie zapytań

W Sense mam następujące:

GET index/_search 
{ 
    "query": { 
    "match" : { 
     "name" : "some string" 
    } 
    } 
} 

I w moim kodu Java mam:

node = nodeBuilder().client(true).clusterName(CLUSTER_NAME).node(); 
client = node.client(); 
QueryBuilder qb = QueryBuilders.termQuery("name", "some string"); 
SearchResponse response = client.prepareSearch("index") // 
    .setQuery(qb) // Query 
    .execute().actionGet(); 

Ale one różne wyniki wyszukiwania. Jaka jest różnica, ponieważ nie mogę tego zobaczyć? Czy istnieje również dobre źródło informacji, które mogą być przydatne?

Odpowiedz

13

Jeśli chcesz, aby dwa zapytania zwracały takie same wyniki, musisz użyć tego samego typu zapytania. W zapytaniu Sense wykonujesz zapytanie mecz:

"query": { 
    "match" : { 
     "name" : "some string" 
    } 
    } 

ale w kodzie Java wykonujesz termQuery:

QueryBuilder qb = QueryBuilders.termQuery("name", "some string"); 

Tak, aby odpowiedzieć na to pytanie użyć kwerendy mecz zamiast w kodzie Java :

QueryBuilder qb = QueryBuilders.matchQuery("name", "some string"); 

Odnośnie drugiego pytania, jest ono nieco obszerne. Na pewno spróbuję przejrzeć dokumentację i przeszukać tutaj w StackOverflow. Jeśli chodzi o interfejs API Java, wyglądałby na here dla przeglądu i here dla informacji na temat zapytania dsl przez Java.

Myślę, że dobre ogólne zrozumienie sposobu działania Elasticsearch i pewna wygoda w mechanizmie zapytań za pośrednictwem interfejsu REST API byłoby bardzo pomocne w zrozumieniu interfejsu API języka Java. Dobre miejsca na rozpoczęcie:

http://joelabrahamsson.com/elasticsearch-101/

http://exploringelasticsearch.com/

http://java.dzone.com/articles/elasticsearch-getting-started

+0

Dzięki swoją fix pracował. Jeśli chodzi o dokumenty, które przeczytałem i przeczytałem wszystkie z wyjątkiem jednego z podanych przez ciebie linków, staram się po prostu wyleczyć lepsze punkty, tak myślę, że w końcu się tam dostanę. – Neilos

+1

Tak, znalazłem, że muszę czytać niektóre z tego w kółko, aby uzyskać szczegółowe informacje. ES jest dość łatwy w użyciu, ale złożoność pod nim może być czasami zniechęcająca. –

Powiązane problemy