elasticsearch - 如何规范 Elasticsearch 查询中的周期(例如JJ Abrams == J.J Abrams)?

标签 elasticsearch

我需要它,以便其中带有句点的单词等于非句点变体。

我看到文档中有一个关于分析器和 token 过滤器的部分,但是我发现它很简洁,不确定如何去做。

最佳答案

使用char filter消除点,例如:

PUT /no_dots
{
  "settings": {
    "analysis": {
      "char_filter": {
        "my_mapping": {
          "type": "mapping",
          "mappings": [
            ".=>"
          ]
        }
      },
      "analyzer": {
        "my_no_dots_analyzer": {
          "tokenizer": "standard",
          "char_filter": [
            "my_mapping"
          ]
        }
      }
    }
  },
  "mappings": {
    "test": {
      "properties": {
        "text": {
          "type": "string",
          "analyzer": "my_no_dots_analyzer"
        }
      }
    }
  }
}

并测试GET /no_dots/_analyze?analyzer=my_no_dots_analyzer&text=J.J Abrams返回:
{
   "tokens": [
      {
         "token": "JJ",
         "start_offset": 0,
         "end_offset": 3,
         "type": "<ALPHANUM>",
         "position": 1
      },
      {
         "token": "Abrams",
         "start_offset": 4,
         "end_offset": 10,
         "type": "<ALPHANUM>",
         "position": 2
      }
   ]
}

关于elasticsearch - 如何规范 Elasticsearch 查询中的周期(例如JJ Abrams == J.J Abrams)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243831/

相关文章:

java - Elasticsearch Java API addMapping() 和 setSettings() 用法

php - 了解ElasticSearch路由

python-3.x - hits>total - 限制为 10000 条记录 - 增加限制

elasticsearch - 提高搜索查询中的某些关键字

elasticsearch - 只需要汇总查询结果

elasticsearch - ElasticSearch整个领域的术语汇总

elasticsearch - 平均和按查询ElasticSearch分组

elasticsearch - 为什么Elasticsearch从2.4版跳到5.0版?

ruby-on-rails - Elasticsearch:已达到当前计划的最大索引数-状态:500

elasticsearch - Elasticsearch 突出显示整个单词而不是单词的一部分