【问题标题】:Elastic Search Query with Java Api使用 Java Api 进行弹性搜索查询
【发布时间】:2014-10-03 15:37:32
【问题描述】:

我正在开发 JSF 项目并将 Elastic Search 与本机 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"
        }
          }
       }
}'

【问题讨论】:

    标签: java api elasticsearch


    【解决方案1】:

    我不确定您的意图,但如果您想创建“和”/“或”查询,请尝试以下操作:

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

    【讨论】:

    • 其实我想做点什么blog.qbox.io/…这个链接。我做了所有分析器,ngram ve 标记器定义。我成功地用 curl 处理了这个查询,但我在 java api 中尝试了很多查询类型,但没有解决方案。
    • 感谢 Tomek 的回复。非常感谢您编辑中的代码工作正常。你能看看这个问题吗?没有人回答这个stackoverflow.com/questions/25765465/…
    猜你喜欢
    • 2021-02-28
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多