elasticsearch 弹性搜索中的索引特定项过滤器
我有一个多匹配搜索查询,我以前根据客户端代码术语过滤器限制了搜索结果。这很有效 我现在需要进一步限制结果,因为某些用户应该只能返回有限零件或产品ID的结果。零件/产品ID将有所不同,并将通过应用程序逻辑确定 正如下面这个不起作用的示例所示,我正在努力解决的是如何为每个索引中的ID应用术语过滤器
elasticsearch 弹性搜索中的索引特定项过滤器,
elasticsearch,lucene,
elasticsearch,Lucene,我有一个多匹配搜索查询,我以前根据客户端代码术语过滤器限制了搜索结果。这很有效 我现在需要进一步限制结果,因为某些用户应该只能返回有限零件或产品ID的结果。零件/产品ID将有所不同,并将通过应用程序逻辑确定 正如下面这个不起作用的示例所示,我正在努力解决的是如何为每个索引中的ID应用术语过滤器 GET parts,products/_search { "size": 20, "query": { "bool": { "must": [], "filter"
GET parts,products/_search
{
"size": 20,
"query": {
"bool": {
"must": [],
"filter": [
{
"terms": {
"client_code": [
"abc"
]
}
},
{
"terms": {
"products.id": [
123,456,789
]
}
},
{
"terms": {
"parts.id": [
abc123,abc456,abc789
]
}
},
{
"multi_match": {
"query": "foo",
"fields": [
"_id",
"name",
"sku",
"title",
"barcode"
]
}
}
]
}
}
}
当然,我可以应用如下术语过滤器:
{
"terms": {
"id": [
123,456,abc789
]
}
}
但是,如果索引中的ID相同(当数据来自自动递增的DBs时就是这种情况),那么我需要一种方式,比如说“给我产品ID 1、2和3以及零件ID 1、3和4”。我希望这有意义
如果您提供了数据类型,我可以给出更具体的答案,但根据您提供的内容,您应该了解嵌套查询