首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elasticsearch多标签搜索

Elasticsearch多标签搜索
EN

Stack Overflow用户
提问于 2014-04-07 07:42:33
回答 1查看 4.3K关注 0票数 1

我的elasticsearch索引存储的文档如下:

代码语言:javascript
运行
复制
{
  "id": "123",
  "name": "My super object",
  "tags": [
    "level1",
    "level2-A",
    "level3-A-a"
  ]
}

代码语言:javascript
运行
复制
{
  "id": "234",
  "name": "My super object",
  "tags": [
    "level1",
    "level2-B",
    "level3-B-a"
  ]
}

表示导航树的标记。

代码语言:javascript
运行
复制
level1 -> level2-A -> level3-A-a
       -> level2-B -> level3-B-a
                   -> level3-B-b

我希望在一个查询中能够撤回,对于一组标记,最多有10个对象标记为每个标记。

一个例子更容易理解:

对于2级-A级和2级-B级,我想撤回多达10个标有二级A级和二级B级标签的物体。

是否有办法在一个查询中做到这一点,而不是对每个标记进行查询?

EN

回答 1

Stack Overflow用户

发布于 2014-04-09 20:17:27

如果我正确地理解了这个问题,您可以在一个单独的bool查询中为您所关心的每个标记使用 filter

例如..。假设我索引了10个这样的文档:

{"tags": ["a"]}

像这样的10个:

{"tags": ["b"]}

如果我想要一个查询,为我提供3个带有"a"标记的文档和3个带有"b"标记的文档,那么这样做是可行的:

代码语言:javascript
运行
复制
 `{       "query": {"match_all": {}},       "filter": {         "bool": {           "should": [             {               "bool": {                 "must": [                   {                     "term": {"tags": "a"}                   },                   {                     "limit": {"value": 3}                   }                 ]               }             },             {               "bool": {                 "must": [                   {                     "term": {"tags": "b"}                   },                   {                     "limit": {"value": 3}                   }                 ]               }             }           ]         }       }     }` 

但是,如果文档中有多个标记,则可能会出现超出对任何一个标记的限制的情况。我的意思是..。

假设我用标记["a"]索引3个文档,然后用标签["a", "b"]索引3个文档。如果您执行与上面相同的查询,您可能会使用"a"获得6个文档--其中3个文档只有"a",3个文档有"a""b"。但是,如果这种行为对于您的用例来说是可以接受的,那么上面的查询应该可以工作。

注意:limit过滤器限制在碎片级别而不是在索引级别上考虑的文档数量。如果索引中有多个碎片(我怀疑您可能会这么做),那么这种方法将无法工作。我认为在这种情况下,您只需执行多个查询即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22906350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档