/ / Як отримати результати, у яких є всі рядки, вказані в пошуковому запиті - люценові

Як отримати результати з усіма рядками, зазначеними в пошуковому запиті - lucene

Я початківець у Люцені. Я пишу пошукову систему для пошуку в нашій кодовій базі певних ключових слів. У мене є вимога, щодо якої мені потрібна ваша допомога. Скажімо, я шукаю слово "комп'ютери Apple", я хотів би, щоб Люсен кидав лише ті рядки, які мають "чутливі до регістру" "яблучні комп'ютери". Але те, що я бачу, це те, що я бачу лінії, що мають комп'ютери Apple, лінії, які мають лише яблуко, і лінії, що мають лише комп'ютери. Як я фільтрую його, щоб отримати лише лінії, що мають яблуко та комп'ютер.

Відповіді:

0 для відповіді № 1

Як ви запитуєте Lucene? В основному те, про що ви запитуєте, покривається побудовою запиту з використанням BooleanClause.Occur.MUST. Як саме це зробити, залежить від вашої конструкції запитів: для аналізатора запитів за замовчуванням слід використовувати щось на кшталт

+ Комп'ютери Apple +

Хоча якщо ви будуєте запити програмно, ви повинні використовувати ОБОВ'ЯЗКОВО для кожного терміну.


0 для відповіді № 2

Як підказав Юваль, важливо знати, як ви використовуєте Lucene.
Якщо ви використовуєте його через люцен-Java і вам потрібні точні результати фрази (документи, які містять лише "яблучні комп'ютери"), ви можете використовувати PhraseQuery.

Приклад того, як його скласти.