Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20947|Відповідь: 1

Складні запити ElasticSearch повинні, повинні must_not використовувати

[Копіювати посилання]
Опубліковано 28.12.2018 12:01:09 | | |
Запит до спільного запиту: повинен, повинен, must_not

Якщо ми хочемо запитати щось подібне до «content with BMW, але не in tag», нам потрібно використовувати bool federated query.

Спільний запит використовуватиме три ключові слова: must, should, must_not.

Ці три можна зрозуміти таким чином

must: Документ має точно відповідати умовам
should: має бути більше ніж одна умова, і якщо хоча б одна умова виконана, цей документ виконає повинні
must_not:Документ не повинен відповідати критеріям

Офіційний вступ до сайту:https://www.elastic.co/guide/cn/ ... bining-filters.html

Запит DSL

match_all Запит

Усі документи можна запитувати, і це стандартний оператор без умов запиту.


Цей запит часто використовується для об'єднання фільтрів. Наприклад, потрібно отримати всі поштові скриньки, і всі релевантності документів однакові, тому _score ви отримуєте 1.

Запит на збіг

Відповідний запит — це стандартний запит, який використовується, незалежно від того, чи потрібен вам повнотекстовий запит, чи точний запит.

Якщо ви використовуєте match для запиту до повного тексту поля, аналізатор розбиратиме символи запиту перед самим запитом:



Якщо ви вкажете точне значення у розділі match, він шукатиме ваше значення, коли зустрічає число, дату, булеву або not_analyzed рядок:


Порада: При пошуку точного збігу найкраще використовувати оператори фільтра, оскільки оператори фільтра кешують дані.

Відповідний запит може шукати лише точне значення, яке вказує точне поле, і все, що потрібно зробити — це вказати правильну назву поля, щоб уникнути синтаксичних помилок.

multi_match Запит

multi_match запит дозволяє одночасно шукати кілька полів на основі відповідного запиту і одночасно знаходити одне в кількох полях:


Запит у bool

Запити Bool подібні до фільтрації булів і використовуються для об'єднання кількох клауз запитів. Різниця полягає в тому, що бул-фільтр може безпосередньо визначати, чи успішне співпадіння, тоді як бульний запит обчислює _score (кореляційний бал) кожної клаузи запиту.

must:: 查询指定文档一定要被包含。
must_not:: Документи, зазначені у запиті, не повинні бути включені.
should:: 查询指定文档,有则可以为文档相关性加分。

Наступний запит виявить, що поле заголовка містить «як заробити мільйони», а поле «тег» не позначене як спам. Якщо вони позначені як «зірочкові» або мають дату випуску до 2014 року, то ці відповідні документи будуть на вищому рівні, ніж подібні сайти:


Порада: якщо в запиті bool немає пункту «must», то має бути принаймні один пункт «should». Але якщо існує обов'язкова клауза, то запит також може бути виконаний без необхідності.

Запит до диких карт

Використовуйте стандартні запити для wildcard shell

Наступний запит відповідає документам, що містять W1F 7HW та W2F 8HW:


Наприклад, наступний запит для hostname збігається з наступним wildcard shell:


Запит у вигляді regexp

Припустимо, ви хочете зіставити лише поштові індекси, які починаються на W, а потім з номерами. Використання запитів у вигляді regexp дозволяє писати більш складні шаблони:



Цей регулярний вираз визначає, що запис має починатися з W, за ним слідує число від 0 до 9, а потім один або кілька інших символів.

Наступний приклад — це всі регулярні початки з wxopen


Запит до префікса

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


Підбор фраз

Коли потрібно знайти кілька слів поруч, використовуйте match_phrase запит:


Подібно до відповідних запитів, match_phrase спочатку аналізує рядок запиту, щоб отримати список термінів. Він шукатиме всі записи,
Однак зберігаються лише документи, що містять усі пошукові терміни, і розташування термінів має бути поруч. Запит на фразу Quick Fox не збігається
будь-яка наша документація, оскільки жодна документація не містить швидких і блокових записів, розташованих поруч.
match_phrase запит також може бути написаний як відповідний запит типової фрази:







Попередній:Придбано Китайською онлайн-школою бухгалтерського обліку 18 грудня (Навчальний табір митного очищення рівня 6 Accounting Practice)
Наступний:C# regex приймає значення href тегу A у HTML
Опубліковано 22.11.2022 14:25:30 |
Вивчайте ES, дякую, орендодавець
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com