2016-04-29 5 views
0

Я в настоящее время использую этот ES запроса для поиска предложения от ES (используя край п г)Elasticsearch запросов для нескольких слов предложений поиска

var terms = query.split(' '), 
    baseTerms = terms.length === 1 ? '' : terms.slice(0, -1).join(' ') + ' ', 
    lastTerm = terms[terms.length - 1].toLowerCase(); 

"query": { 
     "simple_query_string": { 
     "fields": ['title.autocomplete'], //title.basic 
     "query": baseTerms + '(' + lastTerm + '|' + lastTerm + '*)', 
     "default_operator": "and" 
     } 
    } 

который работает, но только для отдельных слов. Когда я печатаю буквы, появляются предложения с одним словом, но я пытаюсь получить многословные предложения, разделенные пробелами (предложения фраз). Есть ли лучший запрос ES для использования, чтобы я мог получить некоторые предложения фразы?

ответ

0

Использование match_phrase_prefix Query. Он даст вам фразовые предложения: ES Query похож:

{ 
"match_phrase_prefix" : { 
    "message" : { 
     "query" : "quick brown f" 
    } 
    } 
} 
+0

Мне также нужно избавиться от кода var terms = query.split .... над ним? – user3125823

+1

Да, вам не придется разбиваться на космос. – Richa

+0

спасибо .... все еще учатся – user3125823

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