Elasticsearch е търсачка, използваща библиотеки Apache Lucene от езика за програмиране Java и се използва от милиони. Той позволява на потребителя да съхранява данни в своята база данни за анализ и потребителят може също така да създава индекси и да съхранява данни в тях. Потребителят може също да прилага различни заявки, за да получи данни от таблиците/индексите и да получи полезна информация чрез това.
Това ръководство ще обясни разликата между Match и Boolean заявки в Elasticsearch.
Какво е съвпадението в Elasticsearch?
Заявката за съвпадение в Elasticsearch е много проста, тъй като съдържа пълнотекстово условие за получаване на данни от базата данни. Заявката за съвпадение взема данните от индекса и ги превръща в масив и след това търси желаните ключови думи от него, което прави извличането на данни ефективно.
Какво е Boolean в Elasticsearch?
Булевата заявка в Elasticsearch комбинира множество заявки в булеви изрази и показва получения документ от базата данни. Булевата заявка има множество клаузи, които са както следва:
-
- трябва да
- филтър
- Трябва
- не трябва
Каква е разликата между Match и Boolean в Elasticsearch?
Следващият раздел обяснява разликата между Match и Boolean агрегиране с помощта на примери. Нека следваме следната процедура:
Свържете се с Elasticsearch и Kibana
За да използвате Match и Boolean заявките в Elasticsearch, отворете терминала от директорията bin на Elasticsearch и използвайте следната команда:
elasticsearch.bat
След това отидете в директорията bin на Kibana от локалната система, за да отворите терминала и използвайте следната команда:
Използвайте localhost с номер на порт 9200 в уеб браузъра, за да влезете в Elasticsearch:
Отново използвайте localhost в уеб браузъра, но с номер на порт 5601, за да влезете в потребителския интерфейс на Kibana:
Насочете се към „ Инструменти за разработка ” от страницата на Kibana от лентата за търсене:
Синтаксис на заявката за съвпадение
Следва основният синтаксис на заявката за съвпадение с GET заявка за извличане на данни:
ВЗЕМЕТЕ / _Търсене{
'запитване' : {
'съвпада' : {
'съобщение' : {
'запитване' : 'Това е тест'
}
}
}
}
Горният фрагмент предполага:
-
- Кодът започва с a ВЗЕМЕТЕ заявка с помощта API за търсене за извличане на данни от база данни и потребителят може да добави индексно име след ключовата дума GET.
- The заявка ключовата дума съдържа съвпада клауза, която получава съобщение от индекса или базата данни и след това данни се споменава в заявка фраза в края.
Използвайте заявка за съвпадение
Този раздел обяснява практически пример за използване на заявката за съвпадение и показва данните от демо-индекс с помощта на a ВЗЕМЕТЕ заявка:
ВЗЕМЕТЕ / демо-индекс / _Търсене
Използвайте следния код, за да изпълните заявката за съвпадение в Elasticsearch на „ демо-индекс ”, за да приложите заявка на „ Уотсън ” име:
{
'запитване' : {
'съвпада' : {
'име' : {
'запитване' : 'уотсън'
}
}
}
}
Синтаксис на булева заявка
Следва основният синтаксис на булевата заявка с GET заявка за извличане на данни от базата данни:
ВЗЕМЕТЕ / _Търсене{
'запитване' : {
'bool' : {
'клауза' : {
'поле' : 'термин'
}
}
}
}
Горният фрагмент предполага:
-
- The ВЗЕМЕТЕ заявката се използва за извличане на данни от индекса с помощта API за търсене .
- The заявка ключовата дума съдържа bool за заявката, която съдържа нейния клауза за да приложите заявката към индекса или базата данни и след това данни се извлича и показва на екрана.
Използвайте Boolean Query
Следната заявка използва булевата заявка, за да получи данни от „ демо-индекс ' използвайки ' трябва да клауза и комбиниране на две заявки на „ Обозначаване ' с ' Име ”:
ВЗЕМЕТЕ / демо-индекс / _Търсене{
'запитване' : {
'bool' : {
'трябва да' : [
{
'термин' : {
'Обозначаване' : 'Добър във всичко'
}
} ,
{
'термин' : {
'Име' : 'Андерсън'
}
}
]
}
}
}
Тази комбинация ще създаде булев израз за прилагане на заявката към индекса:
Това е всичко за разликите между Match и Boolean заявки в Elasticsearch.
Заключение
Match и Boolean са две заявки, използвани в Elasticsearch за получаване на данни от базата данни за анализ или от индекса, създаден от потребителя. Заявката за съвпадение преобразува данните в масиви и извлича данни от масива, за да направи процеса по-ефективен. Булевата заявка прилага множество заявки, за да направи едно изявление и прилага заявка към индекса за извличане на данни. Това ръководство обяснява разликите между Match и Boolean заявките в Elasticsearch за получаване на данни от базата данни.