Я разрабатываю проект 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"
}
}
}
}'
Я не уверен в ваших намерениях, но если вы хотите создать "и"/"или", попробуйте что-то вроде этого:
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
и, например:
boolQueryBuilder.must(QueryBuilders.matchQuery(field, value));
Вы можете добавить столько запросов (любой тип - multiMatch, термин и т.д.), Как вы хотите. Попробуйте также методы should() или mustNot() - зависит от того, что вы хотите.
Вот более сложный пример: http://massapi.com/class/bo/BoolQueryBuilder.html
QueryBuilders.matchQuery(field, value).operator(MatchQueryBuilder.Operator.OR);