Назад на головну сторінку

Синтаксис запиту

Ця сторінка дає короткий огляд доступного синтаксису запиту, від базового до просунутого. Синтаксис запиту забезпечується Apache Lucene, основоположним рушієм пошуку DocFetcher'а, і описується у більш технічній манері на сторінці Lucene про синтаксис запиту.

Булеві операції

DocFetcher підтримує булеві оператори OR, AND and NOT. Якщо слова поєднуються без булевих операторів, DocFetcher буде стандартно обробляти їх, ніби вони були поєднані з допомогою OR. Якщо вам не подобається це, ви можете перейти в уподобання та задати AND як стандарт.

Замість OR, AND та NOT, ви можете також використовувати ||, && та '-' (символ мінуса), відповідно. Ви можете використовувати круглі дужки для групування певних виразів. Ось кілька прикладів:

Запит Результатні документи містять...
dog OR cat або dog, або cat, або те й інше
dog AND cat обидва слова dog і cat
dog cat (стандартно еквівалент запиту dog OR cat)
dog NOT cat dog, але не cat
-dog cat cat, але не dog
(dog OR cat) AND mouse mouse та, або dog, або cat, чи обидва

Шукання є не чутливим до регістру символів.

DocFetcher не розрізняє символи між рядковими та заголовними, а тому не має значення, чи ви уводите слова повністю у нижньому або у верхньому регістрі, чи у поєднанні рядкових і заголовних. Єдиними винятками є ключові слова OR, AND, NOT та TO, які повинні завжди уводитися заголовними літерами. (Для ключслова TO дивіться про 'пошук діапазону' нижче.)

Пошук фрази та його обов'язкові умови

Для пошуку фрази (тобто, послідовності слів) поміщайте фразу у подвійні лапки. Для вказування, що документи для пошуку повинні обов'язково містити конкретне слово, ставте '+' перед цим словом. Звичайно, ви можете комбінувати ці конструкції з булевими операторами та дужками. Знову ж таки, ось приклади:

Запит Результатні документи містять...
"dog cat mouse" слова dog, cat та mouse, саме у такому порядку
+dog cat безумовно dog, та можливо також cat
"dog cat" AND mouse фраза dog cat, та слово mouse
+dog +cat (еквівалент запиту dog AND cat)

Знаки підстанови

Знаки питання ('?') та зірочки ('*') можуть використовуватися для вказування того, що деякі символи є невідомими. Знак питання означає точно один невідомий символ, тоді як зірочка означає нуль або більше невідомих символів. Приклади:

Запит Результатні документи містять...
luc? lucy, luca, ...
luc* luc, lucy, luck, lucene, ...
*ene* lucene, energy, generator, ...

Примітка: Якщо знаки підстанови використовуються як перший символ слова, то пошук тяжіє у середньому до уповільнення. Це через те, як індекс структурується: це ніби ви намагаєтеся шукати когось телефонний номер, і ви знаєте тільки власне ім'я особи. Тому, у прикладі вище, пошук *ene* буде, мабуть, повільнішим, ніж інші пошуки, оскільки *ene* починається знаком підстанови.

Нечіткі пошуки

Нечіткі пошуки дозволяють вам шукати слова подібні до заданого слова. Наприклад, якщо ви шукаєте roam~, то DocFetcher буде знаходити документи, що містять слова, на кшталт foam та roams.

Додатково, ви можете прилучати поріг подібності між 0 та 1, наприклад: roam~0.8. Чим вище цей поріг, тим вище подібність повернутих відповідностей. Відсутність зазначення цього порогу є еквівалентом використання стандартного значення 0.5.

Пошуки за близькістю

Пошуки за близькістю дозволяють вам знаходити слова, що є у межах визначеної відстані одне відносно іншого. Для здійснення пошуку за близькістю вставте тильду ('~') у кінці фрази, за якою слідує значення цієї відстані. — Зауважте, що це синтаксично подібне до нечітких пошуків. Наприклад, для пошуку документів, що містять wikipedia та lucene у межах відстані 10 слів між ними, уведіть: "wikipedia lucene"~10

Умови підвищення пріоритету

Ви можете впливати на сортування значущості результатів, призначаючи власні вагомості для слів. Наприклад: якщо ви уведете dog^4 cat замість просто dog cat, документи, що містять dog будуть отримувати вищу оцінку, а тому будуть переміщені ближче до верху переліку результатів.

Хоча цей фактор підвищення повинен бути додатнім, однак він може бути меншим за 1 (наприклад, 0.2). Якщо жоден фактор підвищення не визначено, то використовується стандартне значення 1.

Пошуки у певних полях

Стандартно, DocFetcher буде шукати у всіх текстових даних, доступних для витягнення, тобто у вмісті, іменах файлів та метаданих документів. Проте, ви можете також обмежувати свої пошуки полями імен файлів та/або певних метаданих. Наприклад, для пошуку документів, чиї назви містять wikipedia, уведіть: title:wikipedia. Це може комбінуватися з пошуком фрази, наприклад title:"dog cat", або дужками, наприклад title:(dog cat). Фактично, якщо ви опустите ці лапки та дужки, то лише dog буде добиратися, а не cat.

Які поля є доступними, у цілому залежить від формату документа, але ви можете використовувати це як емпіричне правило:

Пошуки у діапазоні

DocFetcher дозволяє шукати слова, що є лексикографічно між двома іншими словами. Наприклад, слово beta знаходиться між alpha та gamma. А тому, якщо ви хочете вивести у перелік документи, що містять слова між alpha та gamma, уведіть: [alpha TO gamma].

Коли використовуються квадратні дужки, то запитуваний діапазон стає включним, тобто alpha та gamma включаються у результати. Щоб зробити діапазон пошуку виключним, використовуйте натомість фігурні дужки: {alpha TO gamma}

Ви можете комбінувати пошуки у діапазоні з пошуками у полях так title:{alpha TO gamma}. Це буде обмежувати пошук у діапазоні пошуком у полях.