我的Elasticsearch中包含数据
PUT /logs/visited_domains/1
{
"visited_domain":"microsoft.com"
}
PUT /logs/visited_domains/2
{
"visited_domain":"not-microsoft.com"
}
映射是:
{
"properties": {
"visited_domain": {
"type": "string",
"index": "not_analyzed"
}
}
}
当我执行
的ElasticSearch时{
"query": {
"filtered": {
"filter": {
"term": {
"visited_domain": "microsoft.com"
}
}
}
}
}
我会得到两个结果。但我只想要完全匹配。关于如何改变查询或改进映射的任何想法?
编辑:我将我的一个示例从notmicrosoft.com
更改为not-microsoft.com
,因为此破折号导致了很多麻烦。在搜索notmicrosoft.com
时,not-microsoft.com
不会返回,但microsoft.com
会返回。
答案 0 :(得分:2)
使用query_string,当与引号
一起使用时,它给出完全匹配 "query": {
"query_string": {
"default_field": "visited_domain",
"query": "\"microsoft.com\""
}
}