Q:有两个人掉到陷阱里了,死的人叫死人,活人叫什么?

es搜索特殊字符《

Elasticsearch | 作者 chachalala | 发布于2017年03月08日 | 阅读数:10035

使用ik分词器搜索词含有“《”时,“《”无法被分词,搜索不到结果。
已邀请:

medcl - 今晚打老虎。

赞同来自:

这个标点符号一般来说没有意义,如果你的场景确实需要,就可以单独处理一下,比如自定义一个 analyzer,前面套一个 char-filter,将这个符号转成其他的: 《 -> "left_book_quote" 这样的,和很多系统的 emoji 的标签替换同理。
 记住查询也使用相同的 analyzer

chachalala

赞同来自:

这是我的查询语句,应用场景是搜索一篇 名称中包含有《》号的文档,只输入《号时进行查询,查询不到结果。
 {
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "should": [
              {
                "multi_match": {
                  "query": "《",
                  "type": "most_fields",
                  "operator": "and",
                  "fields": [
                    "esDoc.title^10",
                    "esAtt.attName^1"
                  ],
                  "analyzer": "ik_smart",
                  "minimum_should_match": "3<90%",
                  "tie_breaker": 0.3
                }
              }
            ]
          }
        },
        {
          "term": {
            "status": "normal"
          }
        }
      ]
    }
  },
  "from": 0,
  "size": 20
}
 

要回复问题请先登录注册