0

我目前正在尝试改进我的弹性搜索结果的极端情况。一个特别让我头疼的是:“google+”被简单地简化为“google”。省略特殊字符通常很好,但对于这个我想要一个例外。任何想法如何实现这一目标?

我尝试了以下设置:

{
  "index": {
    "analysis": {
      "analyzer": {
        "default": {
          "tokenizer": "standard",
          "filter": [
            "synonym",
            "word_delimiter"
          ]
        }
      },
      "filter": {
        "synonym": {
          "type": "synonym",
          "synonyms_path": "analysis/synonym.txt"
        },
        "word_delimiter": {
          "type": "word_delimiter",
          "protected_words_path": "analysis/protected.txt"
        }
      }
    }
  }
}

protected.txt 包含一行 google+

4

2 回答 2

0

我猜标准标记器正在剥离+from google+。您可以使用分析 api检查它。我会改用Whitespace 标记器并正确配置您已经在使用的Word 分隔符标记过滤器。

于 2012-10-17T09:03:06.613 回答
0

我认为模式替换会是一个更好的主意 - http://www.elasticsearch.org/guide/reference/index-modules/analysis/pattern_replace-tokenfilter.html

于 2012-10-21T05:11:43.417 回答