【问题标题】:Terms get truncated after indexing document (Elasticsearch)索引文档后术语被截断(Elasticsearch)
【发布时间】:2015-01-25 17:52:34
【问题描述】:

我是 elasticsearch 新手,我所做的只是索引一些文档。然后在检索词向量时,我注意到有很多词被截断了,这是一个小例子

        "nationallypublic": {
           "term_freq": 1,
           "tokens": [
              {
                 "position": 496,
                 "start_offset": 3126,
                 "end_offset": 3146
              }
           ]
        },
        "natur": {
           "term_freq": 1,
           "tokens": [
              {
                 "position": 60,
                 "start_offset": 373,
                 "end_offset": 380
              }
           ]
        },

这些是文档的一些节选,这个自然包含

是一些 80 年代的电影制片人 罗伯特弗里德曼说的自然 全球广告和宣传高级副总裁 华纳兄弟

还有一个用于国家公开的(我知道这是错误的词,但即便如此,它也应该完整包含在内),应该是国家公开的

他们在被拦下几个小时后于 6 月 21 日被报告失踪 在费城小姐附近超速行驶 他们的尸体于 8 月 4 日在农场外的一个农场被发现 小镇

我想知道我是不是做错了什么?这是我的设置和映射

{
   "ap1": {
      "mappings": {
         "document": {
            "properties": {
               "docno": {
                  "type": "string",
                  "index": "not_analyzed",
                  "store": true
               },
               "text": {
                  "type": "string",
                  "store": true,
                  "term_vector": "with_positions_offsets_payloads",
                  "analyzer": "my_english"
               }
            }
         }
      },
      "settings": {
         "index": {
            "creation_date": "1422144472984",
            "uuid": "QzT_sx4aRWOXGlEs2ATibw",
            "analysis": {
               "analyzer": {
                  "my_english": {
                     "type": "english",
                     "stopwords": "_none_"
                  }
               }
            },
            "store": {
               "type": "default"
            },
            "number_of_replicas": "0",
            "number_of_shards": "1",
            "version": {
               "created": "1040299"
            }
         }
      }
   }
}

【问题讨论】:

    标签: elasticsearch stemming


    【解决方案1】:

    这是词干分析器的效果。 默认情况下,雪球词干分析器也用作分析器。 词干分析器的预期行为是将单词转换为其基本形式,如下所示 -

    Jumping => jump
    Running = > run
    

    等等。 雪球词干分析器致力于将单词转换为其基本形式的算法。这意味着转换可能不是很准确,因为它将标记转换为可能代表基本形式但不完全是基本形式的单词。 因此,在索引和搜索时会有效地发生以下版本

    jumping => jmp
    jump    => jmp
    jumped  => jmp
    

    因此我们能够成功地进行词干提取,但在某些极端情况下这并不准确。

    您看到的令牌转换不是截断,而是由雪球算法完成的转​​换。

    如果您想要准确的标记,最好使用基于字典的hunspell,因此会减慢搜索速度。

    【讨论】:

    • 感谢您的信息!我没有得到的是转换似乎无效,我的意思是碱基不是正确的英文单词,例如 natural (natur)。我只是想知道是否有基于字典的词干分析器?
    • 您可以为此使用 hubspell。但由于它是一种查找方式,因此在搜索方面往往很慢
    猜你喜欢
    • 2015-08-17
    • 2016-12-31
    • 2015-08-15
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多