2014-10-03 3 views
1

Я разрабатываю проект JSF и использую Elastic Search с родным Java Api (не Jest). Я определил анализатор и фильтр nGram для расширенного полнотекстового поиска в сопоставлении индекса elasticsearch. Как это сделать с помощью java api?Elastic Search Query with Java Api

curl -XPOST "http://localhost:9200/blurays/_search?pretty" -d' 
{ 
"size": 10, 
"query":{ 
"match": { 
"_all": { 
"query": "yellow bird", 
"operator": "and" 
     } 
      } 
     } 
}' 

ответ

1

Я не уверен в своем намерении, но если вы хотите, чтобы создать «и»/«или» запросы попробовать что-то вроде этого:

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); 

и, например:

boolQueryBuilder.must(QueryBuilders.matchQuery(field, value)); 

Вы можете добавить столько запросов (любой тип - multiMatch, term и т. Д.), Сколько захотите. Попробуйте также методы should() или mustNot() - зависит от того, что вы хотите.

Вот более сложный пример: http://massapi.com/class/bo/BoolQueryBuilder.html


EDIT: Спасибо за комментарий, теперь я думаю, что я понимаю. Что-то вроде ниже?

QueryBuilders.matchQuery(field, value).operator(MatchQueryBuilder.Operator.OR); 
+0

На самом деле я хочу сделать что-то http://blog.qbox.io/multi-field-partial-word-autocomplete-in-elasticsearch-using-ngrams эту ссылку. Я сделал весь анализатор, defgan defken. Мне удалось выполнить этот запрос с помощью curl, но я попробовал много типов запросов в java api и без решения. –

+0

Спасибо за ответ Tomek. Код в вашем редактировании отлично работает благодаря большому количеству. Вы можете посмотреть на этот вопрос? Никто не ответил на это http://stackoverflow.com/questions/25765465/elasticsearch-full-text-search –