elasticsearch - 如何在 elasticsearch 中找到最常用的短语?

标签 elasticsearch facet

我知道您可以使用分面在索引中找到最常用的术语。

例如以下输入:

"A B C" 
"AA BB CC"
"A AA B BB"
"AA B"

term facet 返回这个:

B:3
AA:3
A:2
BB:2
CC:1
C:1

但我想知道是否可以列出以下内容:

AA B:2
A B:1
BB CC:1

....etc...

ElasticSearch 有这样的功能吗?

最佳答案

正如 ramseykhalaf 的评论中提到的,叠层过滤器会生成长度为“n”个单词的标记。

"settings" : { 
   "analysis" : {
       "filter" : {
          "shingle":{
              "type":"shingle",
              "max_shingle_size":5,
              "min_shingle_size":2,
              "output_unigrams":"true"
           },
           "filter_stop":{
              "type":"stop",
              "enable_position_increments":"false"
           }
       },
       "analyzer" : {
           "shingle_analyzer" : {
               "type" : "custom",
               "tokenizer" : "whitespace",
               "filter" : ["standard," "lowercase", "shingle", "filter_stop"]
           }
       }
   }
},
"mappings" : {
   "type" : {
       "properties" : {
           "letters" : {
               "type" : "string",
               "analyzer" : "shingle_analyzer"
           }
       }
   }
}

查看此 blog post了解全部详情。

关于elasticsearch - 如何在 elasticsearch 中找到最常用的短语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252549/

相关文章:

elasticsearch - Elasticsearch过滤器仅显示具有列表值的文档

java - 获取不同字段和排序的 Elasticsearch java api 查询

r - 使用facet_grid从ggplot中提取单个图

java - ElasticSearch Java API 查询并返回单列而不是整个 json 文档

elasticsearch - 如何在Elasticsearch中找到与我的搜索字段相关的相关记录

scala - 如何序列化elastic4s ElasticSearch客户端以与Spark RDD一起运行?

metadata - OneDrive Facet 架构注册(用于元数据)

r - 具有不同规范的 ylim 的 ggplot 分面

python - 为 plotly 人物的每个方面添加痕迹

eclipse - 如何从 Eclipse 项目中删除 JavaScript 方面?