标记化文本字段以进行建议搜索

时间:2019-02-27 14:24:11

标签: elasticsearch

在当前索引中,我有一个文本字段。我想使用此字段中的单独单词作为建议。 示例:

{text: "af bf aff bff"},
{text: "afff bfff "}

因此,对于“ af”一词的要求,我应该有“ af,aff,afff”建议。

我正在研究弹性搜索建议功能,但仍不清楚如何获得理想的行为者。 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html

2 个答案:

答案 0 :(得分:0)

看看Term Suggeste r,它使用的分析器会将您的文本拆分为令牌。

答案 1 :(得分:0)

尝试这个,应该可以或非常接近。请不必为文档重新索引(尝试使用新索引)

输入your_index

{
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "my_sugester_analyzer": {
              "tokenizer": "my_tokenizer_sugester"
            }
          },
          "tokenizer": {
            "my_tokenizer_sugester": {
              "type": "ngram",
              "min_gram": 1,
              "max_gram": 20,
              "token_chars": [
                "lowercase",
                "name_ngrams",
                "standard"
              ]
            }
          }
        }
      }
    },
   "mappings": {
    "_doc": {
      "properties": {
        "your_text": {
          "type": "text",
          "analyzer": "my_sugester_analyzer",
          "search_analyzer": "my_sugester_analyzer"
        }
      }
    }
  }
}