我试图在 Elasticsearch 中获得一个简单的开始功能。例如,我希望查询“char”与“charlotte”匹配,但我不希望它与“dacharlotte”匹配。使用 edgeNgram 过滤器给了我后一个结果。我只希望它匹配以查询词开头的结果,而不仅仅是将它们包含在其中。
做你想做的最简单的方法是使用前缀查询:
{
"query": {
"prefix":{ "name" : "char" }
}
}
Run Code Online (Sandbox Code Playgroud)
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-prefix-query.html