Elasticsearch 和 word_delimiter 令牌过滤器

Elasticsearch and word_delimiter token filter

我一直在阅读来自 elasticsearch 的文档: https://www.elastic.co/guide/en/elasticsearch/reference/1.7/analysis-word-delimiter-tokenfilter.html

同时也在网上搜索例子。 不幸的是,不仅有几个例子,其中大部分都不起作用。

如果有人可以 post 或提供有关如何在 elasticsearch 中使用 word_delimeter 令牌过滤器的示例,我将不胜感激。

谢谢。

弹性版本 - 5.2

尝试以下映射

PUT demo
{
    "settings": {
        "analysis": {
          "analyzer": {
            "index_analyzer_v1" : {
              "tokenizer" : "whitespace",
              "filter" : [ "word_delimeter"]
            }
          },
          "filter": {
            "ngram_filter" : {
              "type" : "nGram",
              "min_gram": 1,
          "max_gram": 10,
          "token_chars": [
            "letter",
            "digit"
          ]
            },
            "word_delimeter" : {
              "type" : "word_delimiter",
              "generate_number_parts" : true,
              "catenate_words" : true,
              "catenate_numbers": true,
              "preserve_original" : true,
              "stem_english_possessive": true

            },
            "stop_words" : {
              "type": "stop",
          "stopwords": ["and", "is", "the", "we", "in", "are", "was", "were", "of"]
            }
          }
        }
    },
    "mappings": {
            "product": {
                "dynamic": "strict",
                "properties": {
                  "name": {
                    "type": "text",
                    "analyzer": "index_analyzer_v1"
                  }
                }
            }
        }
}

索引以下文档

POST demo/product
{
  "name":"SH-09"
}

运行下面查询

POST demo/_search
{
  "query": {"bool": {"must": [
    {"term": {
      "name": {
        "value": "09"
      }
    }}
  ]}}
}

进一步如果你想查看存储在倒排索引中的值,运行下面的查询

GET demo/_analyze?analyzer=index_analyzer_v1&text=SH-09

希望对您有所帮助

我知道这个问题很老了,但无论如何...... 我不能发表评论,因为我没有声望点,但是如果你尝试搜索“每个人”,上面的答案中没有“-”,如果你想在“每个人”中搜索“正文”,也许一个简单的通配符会有所帮助你。 https://www.elastic.co/guide/en/elasticsearch/reference/6.8/query-dsl-wildcard-query.html

希望有用