5

“-”就像一个或运算符,例如我正在搜索“t-link”,然后它显示包含“t-link”和“t”的结果,为什么它给出两个术语,但我对“t-link”,为什么会这样?我怎样才能从中恢复?

4

1 回答 1

8

Elasticsearch 默认使用字符串的标准分析器

基本上,您的字符串被标记为两个标记,小写:

  • 关联

如果您需要知道 elasticsearch 对您的字段有什么作用,请使用_analyze API

$ curl -XGET 'localhost:9200/_analyze?analyzer=standard' -d 't-link'
$ curl -XGET 'localhost:9200/_analyze?analyzer=simple' -d 't-link'

如果您不希望这样,请确保为该字段放置正确的映射,并根据您的要求使用简单的分析器或关键字分析器或根本不使用分析器。另请参见字符串核心类型

$ curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d '
{
    "tweet" : {
        "properties" : {
            "message" : {"type" : "string", "analyzer" : "simple"},
            "other" : {"type" : "string", "index" : "not_analyzed"}
        }
    }
}
'

使用此表单message字段将使用simple分析器进行分析,并且other根本不会分析字段。

于 2013-11-04T07:53:38.317 回答