使用Java Api进行弹性搜索查询

时间:2014-10-03 07:04:34

标签: java api elasticsearch

我正在开发JSF项目并使用本机Java Api(而不是Jest)进行弹性搜索。 我定义了分析器和nGram过滤器,用于弹性搜索索引映射中的高级全文搜索。如何使用java api进行查询定义?

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

1 个答案:

答案 0 :(得分:1)

我不确定你的意图,但是如果你想创建一个"和" /"或"查询尝试这样的事情:

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); 

,例如:

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

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

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

<小时/> 编辑: 感谢您的评论,现在我想我明白了。 像下面的东西?

QueryBuilders.matchQuery(field, value).operator(MatchQueryBuilder.Operator.OR);