我正在开发JSF项目,并将Elastic Search与本机Java Api(不是Jest)一起使用。
我为Elasticsearch索引映射中的高级全文搜索定义了分析器和nGram过滤器。如何使用Java api进行查询定义?

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

最佳答案

我不确定您的意图,但是如果您要创建“and” /“or”查询,请尝试以下操作:

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

例如:
boolQueryBuilder.must(QueryBuilders.matchQuery(field, value));

您可以根据需要添加任意数量的查询(任何类型-multiMatch,term等)。也尝试try should()或mustNot()方法-取决于您想要什么。

这是一个更复杂的示例:
http://massapi.com/class/bo/BoolQueryBuilder.html

编辑:
感谢您的评论,现在我想我明白了。
像下面这样吗?
QueryBuilders.matchQuery(field, value).operator(MatchQueryBuilder.Operator.OR);

10-01 09:17