Я использую Examine в Umbraco для запроса индекса содержимого Lucene. У меня есть поле «completeNodeText», которое является конкатенацией всех свойств узла (чтобы все было просто, а не поиск по нескольким полям).Изучите пользовательский запрос lucene.net после анализатора tokenizes
Я принимаю пользовательские условия поиска. Когда поисковый термин представляет собой несколько слов (т. Е. «Firstterm secondterm»), я хочу, чтобы результирующий запрос был запросом OR: верните результаты, где fullNodeText является первым или вторым.
Я хочу:
{+completeNodeText:"firstterm ? secondterm"}
, но вместо этого, я получаю:
{+completeNodeText:"firstterm secondterm"}
Если я ищу "firstterm ИЛИ secondterm" вместо "firstterm secondterm", то генерируется запрос правильно: {+completeNodeText:"firstterm ? secondterm"}
Я использую следующие вызовы API:
var searcher = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
var searchCriteria = searcher.CreateSearchCriteria();
var query = searchCriteria.Field("completeNodeText", term).Compile();
Есть ли простой способ заставить Examine сгенерировать этот запрос «OR»? Или мне нужно вручную построить необработанный запрос, вызвав StandardAnalyzer, чтобы токенизировать вход пользователя и объединить запрос, итерации через токены? И обойти весь аналитический API запросов Checking?
Я не понимал, что это был запрос фразы. Я предполагаю, что я хочу, чтобы Examine генерировал запрос, который является OR каждого токена в исходном тексте, отправленном пользователем. –
Но я хочу, чтобы Examine использовал StandardAnalyzer для того, чтобы токенизировать все, чтобы мне не пришлось вручную токенизировать ввод пользователя самостоятельно (путем разделения на «и отфильтровывать стоп-слова»), а затем генерировать индивидуальные запросы «ИЛИ» для каждого из эти ручные жетоны. Возможно ли, что Examine/Lucene возьмет поток токенов, а затем сгенерирует индивидуальные запросы поля OR для каждого токена? –
QueryParser должен обработать это для вас. Вы читали [синтаксическую документацию запроса] (http://lucene.apache.org/core/2_9_4/queryparsersyntax.html), с которой я связан? Есть ли какая-то конкретная проблема, которую вы видите здесь? – femtoRgon