Эластичный поисковый запрос с Java Api

1

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

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

1 ответ

1
Лучший ответ

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

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); 

и, например:

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

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

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


EDIT: Спасибо за комментарий, теперь я думаю, что понимаю. Что-то вроде ниже?
QueryBuilders.matchQuery(field, value).operator(MatchQueryBuilder.Operator.OR);
  • 0
    На самом деле я хочу сделать что-то blog.qbox.io/… эту ссылку. Я сделал все анализатор, ngram ve определение токенизатора. Мне удалось обработать этот запрос с помощью curl, но я пробовал много типов запросов в Java API, но не нашел решения.
  • 0
    Спасибо за ответ Tomek. Код в вашем редакторе работает отлично, большое спасибо. Вы можете посмотреть на этот вопрос? Никто не ответил на это stackoverflow.com/questions/25765465/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню