我正在开发 JSF 项目,并将 Elastic Search 与 native 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"
}
}
}
}'
最佳答案
我不确定您的意图,但如果您想创建“和”/“或”查询,请尝试以下操作:
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);
关于java - 使用 Java Api 进行 Elasticsearch 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26174607/