我使用以下查询搜索文档:
user123
但我想让它返回一个包含确切用户名的文档。但目前返回的是一个例子:
正在搜索user123
user123 lastname
firstname user123
以下全部返回:
user123
但我只想要.toDataURL
返回。
我正在使用Elasticsearch 2.1.0
答案 0 :(得分:0)
您需要使用term query进行完全匹配。我假设您使用standard analyzer
(默认)代表user field
,因此您有跟踪令牌inverted index
当您使用match query
时,它将返回所有三个文档。您需要将用户字段映射为index : not_analyzed
,以便不执行任何分析。您的反转索引将如下所示。
然后此查询将为您提供所需的结果
QueryBuilder qb = termQuery(
"username_field",
"user123"
);