当前位置: 首页 > 面试题库 >

如何获得Elasticsearch文档中每个单词的总数?

皇甫夕
2023-03-14
问题内容

我搜索了这个问题,但找不到任何有用的答案。我想获取文档中每个单词的总数,例如,我的索引中有一些推文,并且有一条推文中写着这样的内容:“这里太无聊了,我想去我的家,甜蜜的家”。查询应返回如下响应:

It:1
is:1
so:1
boring:1
here:1
I:1
want:1
to:2
go:1
my:1
home:2
sweet:1

有可能这样做吗?


问题答案:

您正在寻找term vectors利用分析仪的。这样做时,您可以定义所需的任何分析器,即阻止分析器将单词转换为根/普通形式。查看文档以获取更多详细信息。

在:

POST so/_close
PUT so/_settings
{
  "settings": {
    "analysis":{ 
      "analyzer": {
        "my_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase", "my_stemmer"]
        }
      },
      "filter": {
        "my_stemmer": {
          "type": "stemmer",
          "name": "english"
        }
      }
    }
  }
}
POST so/_open
PUT so/t1/_mapping
{
  "t1": {
    "properties": {
      "tweet": {
        "type": "string",
        "store": true,
        "index_analyzer": "my_analyzer"
      }
    }
  }
}
POST so/t1/1
{"tweet": "It is so boring here I want to go to my home sweet home. So I'm bored"}

出:

{
   "_index": "so",
   "_type": "t1",
   "_id": "1",
   "_version": 2,
   "found": true,
   "term_vectors": {
      "tweet": {
         "field_statistics": {
            "sum_doc_freq": 13,
            "doc_count": 1,
            "sum_ttf": 17
         },
         "terms": {
            "bore": {
               "term_freq": 2,
               ...
            },
            "go": {
               "term_freq": 1,
               ...
            },
            "here": {
               "term_freq": 1,
               ...
            },
            "home": {
               "term_freq": 2,
               ...
            },
            "i": {
               "term_freq": 1,
               ...
            },
            "i'm": {
               "term_freq": 1,
               ...
            },
            "is": {
               "term_freq": 1,
               ...
            },
            "it": {
               "term_freq": 1,
               ...
            },
            "my": {
               "term_freq": 1,
               ...
            },
            "so": {
               "term_freq": 2,
               ...
            },
            "sweet": {
               "term_freq": 1,
               ...
            },
            "to": {
               "term_freq": 2,
               ...
            },
            "want": {
               "term_freq": 1,
               ...
            }
         }
      }
   }
}


 类似资料:
  • 问题内容: 我试图找出word文档中是否存在字体为2的任何内容。但是,我无法做到这一点。首先,我尝试读取只有一行和7个单词的示例单词文档中每个单词的字体。我没有得到正确的结果。 这是我的代码: 但是,以上代码始终使字体大小加倍。也就是说,如果文档中的实际字体大小是12,则输出24;如果实际字体是8,则输出16。 这是从Word文档读取字体大小的正确方法吗? 问题答案: 是的,那是正确的方法;测量单

  • 我遇到了mongo的一个奇怪行为,我想澄清一下 我的要求很简单:我想获得集合中单个文档的大小。我找到了两种可能的解决方案: 反对。bsonsize—返回字节大小的javascript方法 在这里,我提供了一些我进行测试的代码: > 我创建了一个新的数据库“test”,并输入了一个只有一个属性的简单文档:type:“auto” stats()函数调用的输出:db。测验stats(): } bsons

  • 我是新来的,我想要得到一个文本文件的单词列表和单词数。这是我尝试过的代码: 输出:century Cepheus CEQ陶瓷Cerberus谷类小脑错误文件字数:0

  • 我一直在使用Stanford POS Tagger标记句子中的词性。我从stackoverflow上的留档和其他问题中学到的是,下面的代码给出了句子的POS标记 但我想要的是获得单个单词的POS标签。一种可能的方法是分解输入字符串并逐字逐句地向Tagger提供输入,但它似乎并不优雅,我认为它增加了出错的机会。Javadoc说应用函数可以返回标记单词的数组列表,但我无法成功调用此函数。任何想法,我怎

  • 问题内容: 例如我有一个文件: 我需要: 我打算使用“ awk”,但问题是单词在不同的空间 问题答案: 尝试 要像您的示例一样在一行中获得结果,请尝试: 输出: 纯重击:

  • 问题内容: 文字为: 我只想得到 我试过了 : 但这给了我: 问题答案: 正则表达式是不必要的。只需使用或即可。