elasticsearch - Elasticsearch-nGram过滤器保留/保留原始 token

标签 elasticsearch n-gram

我正在将ngram-filter应用于我的字符串字段:

"custom_ngram": {
    "type": "ngram",
    "min_gram": 3,
    "max_gram": 10
}

但是结果是我丢失了比ngram范围短或长的 token 。

找不到原始 token ,例如“iq”或“a4”。

我已经在ngram之前进行了一些特定于语言的分析,所以我想避免复制整个字段。我想用ngrams扩展 token 。

有什么想法或建议吗?

这是我的一个使用custom_ngram过滤器的分析器的示例:
"french": {
    "type":"custom",
    "tokenizer": "standard",
    "filter": [
        "french_elision",
        "lowercase",
        "french_stop",
        "custom_ascii_folding",
        "french_stemmer",
        "custom_ngram"
    ]
}

最佳答案

您别无选择,只能使用多个字段,并使用另一个能够保留较短术语的分析器来对该字段进行索引。像这样:

    "text": {
      "type": "string",
      "analyzer": "french",
      "fields": {
        "standard_version": {
          "type": "string",
          "analyzer": "standard"
        }
      }
    }

并调整查询以同时也触摸text.standard_version字段。

关于elasticsearch - Elasticsearch-nGram过滤器保留/保留原始 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38329844/

相关文章:

node.js - 如何在响应中获取更新的文档

java - 如何使用 jest 对 Elasticsearch 结果进行排序

JAVA - n-gram 的类设计

java - java.io.IOException:使用Combiber在MapReduce中溢出失败

Python 计数元组在列表中的出现次数

c# - 查询Json如何获取must数组内的元素

c# - 如何通过 NEST c# 将列表索引到 elasticsearch

elasticsearch - _JAVA_OPTIONS未设置-Xmx

python - 从 python3.3 中的两个嵌套列表添加一元值

elasticsearch - elasticsearch n-gram示例澄清