Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在弹性搜索中过滤id包含[10,23,34,44]中任何元素的文档的结果 - Fatal编程技术网

如何在弹性搜索中过滤id包含[10,23,34,44]中任何元素的文档的结果

如何在弹性搜索中过滤id包含[10,23,34,44]中任何元素的文档的结果,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我不熟悉弹性搜索。我正在使用以下库来帮助我构建搜索查询。 这是图书馆: 我有以下代码来创建我的查询: requestBody = elasticSearchBuilder.requestBodySearch() .query( elasticSearchBuilder.boolQuery() .must(elasticSearchBuilder.multiMatchQuery(feilds, searchQ

我不熟悉弹性搜索。我正在使用以下库来帮助我构建搜索查询。 这是图书馆:

我有以下代码来创建我的查询:

        requestBody = elasticSearchBuilder.requestBodySearch()
        .query(
            elasticSearchBuilder.boolQuery()
                .must(elasticSearchBuilder.multiMatchQuery(feilds, searchQuery)
                    .type(sortAlgorithm)
                    .tieBreaker(tieBreaker)
                    .minimumShouldMatch(searchAccuracy))
其结果是:

{
"bool": {
    "must": {
        "multi_match": {
            "query": "xxxxxxxxx",
            "fields": ["name", "owner", "byline_name", "head"],
            "type": "best_fields",
            "tie_breaker": 0.3
        }
    }
}
} }

现在,我想添加另一个过滤器,在其中搜索id位于该数组中的文档:[10,23,34,44]。因此,我正在寻找像之间或包含或。。。不管怎样都能解决这个问题。有人能帮我吗

更新:

[
{
"id": "80092",
"categoryId": "43229",
"channelId": "54322",
"channelName": "xxxxxxxxxxxx",
"owner": "xxxxxxxxxxxxx",
"ownerChannel": "xxxxxxxxxxxxx",
"bylineName": "xxxxxxxxxxxxxx",
"bylinePublication": "xxxxxxxxxxxx"
 }
]

如果要对标识符执行此操作,有一个特殊的查询,名为

对于其他字段,可以使用查询


如果要对标识符执行此操作,有一个特殊的查询,名为

对于其他字段,可以使用查询


谢谢,你是说索引?如果我有[10,23,34,44],它们都不是索引,我应该使用术语吗?我的意思是特殊字段,哦,不,它们没有索引。假设它们是我的字段product_id的id,那么我如何将它们与术语一起使用?您应该检查之前查询的输出。如果它有例如_id:“44”,那么这个id查询将是有效的。否则,您应该尝试使用术语(用示例修改了我的答案)谢谢,我要尝试一下,但有一个简单的问题:trems只适用于字符串,或者也适用于numberts?谢谢标识符,您是指索引?如果我有[10,23,34,44],它们都不是索引,我应该使用术语吗?我的意思是特殊字段,哦,不,它们没有索引。假设它们是我的字段product_id的id,那么我如何将它们与术语一起使用?您应该检查之前查询的输出。如果它有例如_id:“44”,那么这个id查询将是有效的。否则,您应该尝试使用术语(用示例修改了我的答案),谢谢,我将尝试使用它,但有一个简单的问题:trems仅适用于字符串,还是也适用于numberts?
POST http://localhost:9200/your_index/your_type/_search
Content-type: application/json

{
   "query": {
       "ids" : {
           "values" : ["10", "23", "34", "44"]
       }
   }
}
{
   "query": {
      "constant_score" : {
         "filter" : {
            "terms" : { "otherField" : [10, 23, 34, 44]}
          }
       }
    }
}