首页 文章

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

提问于
浏览
1

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

  • 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);
    

相关问题