弹性搜索短语建议不要从文本中删除空格

时间:2017-05-01 09:16:48

标签: elasticsearch

弹性搜索建议不要删除不需要的空格 查询使用...

POST /_search
{
  "_source": false,
  "suggest": {
    "text": "mega polis",
    "simple_phrase": {
      "phrase": {
        "field": "address.phonetic",
        "size": 5,
        "confidence": 1,
        "max_errors": 3,
        "gram_size": 2,
        "analyzer": "trigram",
        "direct_generator": [
          {
            "suggest_mode": "always",
            "field": "address.phonetic",
            "size": 10,
            "prefix_length": 0
          }
        ],
        "highlight": {
          "pre_tag": "<em>",
          "post_tag": "</em>"
        }
      }
    }
  }
}

我已将数据 megapolis 编入索引,如果我输入搜索文字 mega polis 它不是纠正大城市 我使用过ngram analyzer min_shingle_size = 2和max_shingle_size = 3

1 个答案:

答案 0 :(得分:0)

您找到了一个好的解决方案吗?

我不确定这是否是最好的方法,但就我而言,一个简单的解决方案是切换到term-建议。为了将完整的输入保留为一个术语,我使用了keyword分析器。我想您的trigram分析器也可以解决这个问题,在处理较长的输入文本时可能更可取。

GET myindex/_search
{
  "suggest": {
    "did_you_mean": {
      "text": "orddelings feil",
      "term": {
        "analyzer": "keyword",
        "field": "title"
      }
    }
  }
}