在Elasticsearch中查找带有翻译的希腊字母(α为alpha)

时间:2017-01-17 10:24:33

标签: elasticsearch

我必须搜索包含化学和生物分析中许多符号和术语的索引。它包含许多用于各种分析方法的希腊字母。我想优化以下内容:

  • 通过搜索α找到alpha
  • 通过搜索Fe找到iron

我是否需要自己创建此映射?

1 个答案:

答案 0 :(得分:1)

我会使用synonyms token filter来映射您需要的所有100多个值。

PUT index
{
    "settings" : {
        "analysis" : {
            "analyzer" : {
                "synonyms" : {
                    "tokenizer" : "whitespace",
                    "filter" : ["synonym"]
                }
            },
            "filter" : {
                "synonym" : {
                    "type" : "synonym",
                    "synonyms" : [
                      "α => alpha",
                      "Fe => iron",
                      ...
                    ]
                }
            }
        }
    }
}

请注意,您可以将其存储在文件中并使用synonyms_path设置指向它,而不是列出所有内联同义词。