如何在弹性搜索中过滤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]}
}
}
}
}