elasticsearch,tokenize,Text,elasticsearch,Tokenize" /> elasticsearch,tokenize,Text,elasticsearch,Tokenize" />

Text 从ElasticSearch文档检索分析过的标记

Text 从ElasticSearch文档检索分析过的标记,text,elasticsearch,tokenize,Text,elasticsearch,Tokenize,尝试访问ElasticSearch文档中的分析/标记化文本 我知道您可以使用分析模块来分析任意文本。因此,我可以将文档中的数据复制并粘贴到AnalyzeAPI中,以查看它是如何标记的 不过,这似乎不必要地耗费时间。是否有任何方法指示ElasticSearch在搜索结果中返回标记化文本?我查看了文档,没有发现任何东西。看看这个其他答案:。不幸的是,它需要使用提供的脚本实时重新分析字段内容。 应该可以编写插件来公开此功能。我们的想法是将两个端点添加到: 允许像solr一样阅读lucene Term

尝试访问ElasticSearch文档中的分析/标记化文本

我知道您可以使用分析模块来分析任意文本。因此,我可以将文档中的数据复制并粘贴到AnalyzeAPI中,以查看它是如何标记的


不过,这似乎不必要地耗费时间。是否有任何方法指示ElasticSearch在搜索结果中返回标记化文本?我查看了文档,没有发现任何东西。

看看这个其他答案:。不幸的是,它需要使用提供的脚本实时重新分析字段内容。
应该可以编写插件来公开此功能。我们的想法是将两个端点添加到:

  • 允许像solr一样阅读lucene TermsEnum,这对提出自动建议也很有用。请注意,它不是每个文档,而是索引上的每个术语,具有术语频率和文档频率(由于有许多独特的术语,可能会很昂贵)
  • 允许读取术语向量(如果启用),就像solr一样。这将是每个文档,但需要存储术语向量(您可以在映射中配置它),并且如果启用,还允许检索位置和偏移量

    • 这个问题有点老了,但也许我认为有必要再补充一个答案


      在ElasticSearch 1.0.0中,添加了允许您根据每个文档直接访问引擎盖下的令牌ElasticSearch存储。API文档对此不是很清楚(仅在示例中提到),但为了使用API,您必须首先在中指出,您希望在每个字段上使用
      term\u vector
      属性存储术语向量。

      您可能希望使用脚本,但您的服务器应启用脚本

      curl 'http://localhost:9200/your_index/your_type/_search?pretty=true' -d '{
          "query" : {
              "match_all" : { }
          },
          "script_fields": {
              "terms" : {
                  "script": "doc[field].values",
                  "params": {
                      "field": "field_x.field_y"
                  }
              }
          }
      }'
      

      允许脚本的默认设置取决于弹性搜索版本,因此请从官方文档中查看。

      我也需要第一个案例,但我不关心频率,我只需要一个列表——因此我的计划只是迭代字段数据缓存(就像常规术语方面那样)但是没有收集统计数据。我有一个部分编写的插件。做得好,如果你能在github上共享它就好了!:)如果你是指我——是的,完成后我会的,在这里:我们现在在插件中添加了一个TermList方面。它仍然有点实验性。如果你有机会尝试一下,我对任何反馈都很感兴趣。很好,我会看看的。另一方面,我甚至没有机会开始研究我的想法……太糟糕了!我尝试分析api和术语向量,发现术语向量更复杂,实际上b/c解析其结果比解析api结果更耗时。我想知道,自从你提出这个问题以来,你是否获得了更多的洞察力?通过我的测试,我发现分析术语向量比仅仅检查分析api结果更耗时。