Каква е разликата между размита заявка и заявка за съвпадение?

Kakva E Razlikata Mezdu Razmita Zaavka I Zaavka Za S Vpadenie



Elasticsearch е добре позната, безплатна, аналитична и разпределена търсачка и база данни с отворен код, която се използва за управление на различни видове данни. Това е чисто NoSQL база данни и работи различно от типичните SQL и релационни бази данни. Elasticsearch използва заявка DSL ((специфичен за домейн език) и REST APIs за управление и анализ на данните. В Elasticsearch съществуват различни типове заявки, като размита заявка, заявка за съвпадение, заявка с заместващ знак, заявка с префикс и много други. Тези заявки работят по различен начин един от друг.

Тази публикация демонстрира на:

Какво е „размита“ заявка?

бухнал ” заявка е Query DSL, която извършва търсене на други операции като промяна на знака, вмъкване на знака или премахване на знака въз основа на „ Levenshtein редактиране на разстояние ” разстояние. Обикновено намира разликата между термините и връща резултата в документ, който е по-близък или почти подобен на търсения термин.







Какво е заявка за „съвпадение“?

съвпада ” заявката е друг тип DSL заявка, която се използва за съпоставяне или търсене на дадени данни като низ, число или текст. Това е ' пълен текст ” базирана заявка и извършва търсене в пълен текст и връща резултатите, които съвпадат точно с търсения термин. Ако терминът не съответства на термина за търсене, той ще върне нулев низ или невярно.



Разлика между „размита“ и „съвпадаща“ заявка

И двете ' бухнал ' и ' съвпада ” заявките се използват за целите на търсенето. Основната разлика между тези две заявки е, че „размитата“ заявка прави размито търсене и връща резултат, който е подобен или близък до търсения термин. За разлика от това, заявката за „съвпадение“ връща резултатите, които съвпадат точно с търсения термин.



За по-добро разбиране следвайте дадените по-долу примери:





Пример 1: Размито търсене с помощта на „размита“ заявка

Да предположим, че потребителят иска да намери документа, който има „ Обозначаване „стойност като“ Автор ”. Нека направим търсене, което намира по-близко съвпадение. За да направите това, използвайте „ бухнал ' заявка за търсене в документ, който има ' Обозначаване ” стойност, равна или по-близка до „ автор ”:

ВЗЕМЕТЕ linuxhint / _Търсене

{

'запитване' : {

'бухнал' : {

'Обозначаване' : 'автор'

}

}

}

Изходът по-долу показва, че документът с идентификатор „ 1 ' има ' Обозначаване ” стойност, близка до „ автор ” търсена дума:



Но ако горният пример се приложи от „ съвпада ” заявка, тя ще изпрати „ нулев низ ”, тъй като връща точно съответстващия термин.

Пример 2: Размито търсене с помощта на заявка „Съвпадение“.

Нека вземем същия пример и приложим „ съвпада ' заявка за намиране на документа с ' Обозначаване „стойност като“ автор ”:

ВЗЕМЕТЕ linuxhint / _Търсене

{

'запитване' : {

'съвпада' : {

'Обозначаване' : 'автор'

}

}

}

Изходът по-долу показва, че „ съвпада ” заявката не намира по-близки резултати и връща „ нула ” низ:

Нека променим търсената стойност от „ автор ' да се ' Автор ” и стартирайте „ съвпада ”, както е показано по-долу:

ВЗЕМЕТЕ linuxhint / _Търсене

{

'запитване' : {

'съвпада' : {

'Обозначаване' : 'автор'

}

}

}

Тук можете да видите „ съвпада ” заявка връща документа с id “ 1 ”. Тъй като документ 1 съвпада точно с търсените думи:

Това е всичко за разликата между „ бухнал 'заявка и' съвпада ” запитване.

Заключение

бухнал ” Заявката се използва за извършване на размито търсене и връща резултатите, които съответстват много на търсения термин. Както и да е ' съвпада ” заявката не поддържа размито търсене и връща резултатите, които съвпадат точно с търсения термин. Този блог илюстрира разликата между размита заявка и заявка за съвпадение.