2014-08-27 3 views
1

У меня есть данные в моем Elasticsearch с полем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" 
     } 
     } 
    } 
    } 
} 

Получу оба результата. Но мне нужен только точный матч. Любые идеи о том, как я изменяю запрос или улучшаю отображение?

EDIT: я изменил один из моих примеров из notmicrosoft.com в not-microsoft.com, потому что это тир вызывает много неприятностей. notmicrosoft.com не возвращается, но not-microsoft.com., При поиске microsoft.com.

ответ

2

Использование query_string, который дает точное совпадение при использовании цитат

"query": { 
    "query_string": { 
      "default_field": "visited_domain", 
       "query": "\"microsoft.com\"" 
       } 
    } 
+0

мне удалось решить мою проблему точно с помощью этого метода. Я не уверен, как включить кавычки, если вместо этого мой запрос является переменной. – ChickenWing24

Смежные вопросы