java - 使用 Java Api 进行 Elasticsearch 查询

标签 java api elasticsearch

我正在开发 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/

相关文章:

elasticsearch - 让elasticsearch为列表中的每个元素返回单个结果

elasticsearch - 有没有办法使用 Painless 语言将日期字段转换为不同的时区?

java.text.ParseException : Unparseable date on some devices only 异常

java - 从 JavaScript 实现 Java 接口(interface)失败并出现 TypeError

asp.net - 餐厅后端系统和.Net

javascript - 异常: Google is not defined [Cordova geolocation]

java - 我能够编译 java 程序但无法运行 java 程序

java - getResources 不起作用/未定义 Java

elasticsearch - Logstash 重新创建 Elasticsearch 索引时出错