如何在ElasticSearch中搜索词干?

时间:2019-07-24 20:21:28

标签: elasticsearch full-text-search

我在ElasticSarch中创建了一个索引:

PUT /test
{
    "settings": {
        "analysis" : {
            "analyzer" : {
                "my_analyzer" : {
                    "tokenizer" : "standard",
                    "filter" : ["lowercase", "my_stemmer"]
                }
            },
            "filter" : {
                "my_stemmer" : {
                    "type" : "stemmer",
                    "name" : "german"
                }
            }
        }
    }
}

当我尝试使用自己创建的分析仪执行某项操作时,它会起作用:

它返回我“ telefonier”。没错。

POST /test/_analyze
{
  "analyzer": "my_analyzer",
  "text":     "telefonierend"
}

但是怎么可能做这样的事情:

  1. 有一个文件带有单词“ telefonieren”(末尾只有“ n”)。
  2. 我要搜索“ telefonierend”(末尾为“ nd”)。
  3. 之所以匹配,是因为词干相等。

如果我尝试搜索“ telefonieren”,它将找不到包含单词“ telefonierend”的文件:

GET /test/_search
{
  "query": { "match": { "text": "telefonierend" } }
}

0 个答案:

没有答案