Elasticsearch如何搜索像@这样的字符

时间:2014-09-27 09:17:01

标签: elasticsearch

我遇到了编写Elasticsearch查询的问题 我的查询如下

{
"query": {
    "query_string": {
        "default_field": "content",
        "query": "@lin1"
    }
},
"from": 0,
"size": 1000,
"sort": [
    {
        "time": "desc"
    }
]
}

我正在使用query_string
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html
但是@字符无法匹配 它会产生这样的结果:lin1「lin1」

enter image description here

那么我该如何编写Elasticsearch查询以匹配@lin1

1 个答案:

答案 0 :(得分:1)

这一切都取决于您使用的分析仪。如你所知,你使用的标准分析仪丢弃了' @'索引的符号。在这种情况下,您永远无法搜索' @'符号。但如果情况并非如此,那么你确实有' @'建立索引后,您可以将查询的query_string部分修改为以下内容:

"query_string": {
    "default_field": "content",
    "query": "@lin1",
    "analyzer": "whitespace"
}