当前位置: 首页 > 知识库问答 >
问题:

“significant_terms”聚合可以和多领域一起使用吗?

邢炯
2023-03-14

我在官方留档中找不到任何信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significanttext-aggregation.html

问题是,我试图在应用了带状图过滤器/分析器的“多字段”(name.swigles)上聚合重要术语:

  "aggregations": {
    "significant_words": {
      "sampler": {
        "shard_size": 100
      }, 
      "aggs": {
        "keywords": {
          "significant_text": {
            "field": "name.shingles"
          }
        }
      }
    }
  }

我得到了空桶:

  "aggregations" : {
    "significant_words" : {
      "doc_count" : 5,
      "keywords" : {
        "doc_count" : 5,
        "bg_count" : 153313,
        "buckets" : [ ]
      }
    }
  }

多字段定义:

        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "shingles" : {
              "type" : "text",
              "analyzer" : "shingle_analyzer",
              "fielddata" : true
            }
          }

共有1个答案

秋阳荣
2023-03-14

您也可以对多字段使用重要术语或重要文本聚合。

但是你需要了解这种聚合是如何工作的,你可以查看文档,下面是其中提到的内容。

返回集合中有趣或异常出现的术语的聚合。

在所有这些情况下,所选择的术语不仅仅是一组中最受欢迎的术语。它们是在前景和背景集之间测量的受欢迎程度发生重大变化的术语。如果术语“H5N1”仅存在于 1000 万文档索引中的 5 个文档中,但在构成用户搜索结果的 100 个文档中的 4 个文档中找到,则该文档非常重要且可能与他们的搜索非常相关。5/10,000,000 vs 4/100 是频率的一个动。

此外,在查看聚合结果"doc_count": 5后,索引中的文档数量似乎很少。您可以索引大型文档集,然后可以尝试这种聚合。

如果您想要在瓦片区字段上应用聚集,那么您也可以使用术语聚集:

{
  "size": 0,
  "aggs": {
    "sw": {
     "terms": {
       "field": "name.shingles",
       "size": 10
     }
    }
  }
}
 类似资料:
  • 我有一个项目,我正在通过GSON和Volley阅读一些json。我想把我的数据保存在数据库中,我希望Realm是一个好的解决方案。我选择了我的第一个类,它有七个成员变量,所有的Strings和int,并让它扩展RealmObject,并将其中一个int确定为主键。它编译得很好,但是当它运行时,我在日志中得到大量的输出,最终应用程序在显示主要活动之前就崩溃了。GSON似乎不喜欢解析扩展了RealmO

  • 问题内容: 我正在实现一个使用Realm在某些点(彼此之间不相关)持久化数据的应用程序。例如: 保存用户喜欢的项目。 (该应用进行聊天)保存聊天对话和最近的常量 为应用程序的某些请求实现永久性缓存 保存最近的搜索/表单以提供自动完成功能 (让这些点中的每一个都命名为模块/包) 每个模块/软件包都有一些持久性。我应该如何组织呢?从代码清洁度,性能或我应注意的任何方面考虑 选项A:使用具有唯一架构的唯

  • 正如标题所述,我可以使用setup吗。用pipenv和pyenv管理我的环境、版本和依赖项? 我有一个带有设置的目录结构形式的python包。py文件。 我喜欢使用pibinv作为我的项目环境管理器 - 我使用pyenv来管理我的多个python版本。 所以我想做的是: 使用pyenv获取项目特定的python版本: 使用python运行安装程序文件 setup.py 安装 - 说这个软件包叫做f

  • 在KeyCloak中可以让一个领域的用户管理另一个领域吗?我的目标是拥有两个领域--adminRealm和UserRalm。在adminRealm中应该是用户,他们将能够登录到我们的管理应用程序,他们可以通过Keycloak rest api创建“普通用户”,这将被放置到UserRealm中。 目前我的解决方案工作在一个领域,在那里我有管理用户,可以登录到我的管理应用程序,在那里他可以在相同的领域

  • 我试图在一个带有spring security和KeyClope的java应用程序中同时使用领域和资源角色。不幸的是,KeyClope只会返回一个或另一个,具体取决于: 您仍然可以通过自定义代码获得这两种方法,但它会弄乱@PreAuthorize或spring boot方法等注释。isUserInRole,这会导致难看的代码。 有没有办法覆盖@PreAuthorize方法或JSON令牌Keyclo

  • Realm中的以下Swift 3.0对象相当于什么? 常规雨燕 商店类别: 项目类别: 领域 我试过这个,但我得到一个错误: 错误:属性无法标记为动态,因为它的类型无法在Objective-C中表示 物品类别:没有错误