|
|
Публикувано вВчера в 20:20
|
|
|
|

Пълнотекстовото търсене е опционален компонент на SQL Server базата данни. Ако не си избрал пълнотекстово търсене при инсталиране на SQL Server, стартирай отново инсталатора на SQL Server, за да го добавиш.
Обща информация
Индексът с пълен текст включва една или повече колони, базирани на символи, в таблицата. Тези колони могат да съдържат всеки от следните типове данни: char, varchar, nchar, nvarchar, text, ntext, image, xml или varbinary(max), и FILESTREAM. Всеки пълнотекстов индекс създава индекс за една или повече колони в таблицата, като всяка колона може да използва специфичен език.
Пълнотекстовите заявки работят върху думи и фрази според правилата на конкретни езици (като английски или японски), като по този начин извършват езикови търсения въз основа на текстовите данни в индекса на пълния текст. Заявките с пълен текст могат да включват прости думи и фрази, или множество форми на думи или фрази. Пълнотекстова заявка връща всички документи, съдържащи поне едно съвпадение (известно още като "hit"). Съвпадение се случва, когато целевият документ съдържа всички термини, посочени в пълнотекстовата заявка, и съвпада с други критерии за търсене (като разстоянието между съвпадащите термини).
Инсталация на услуга за пълнотекстово търсене на Linux Docker MSSQL 2022
Източниците са както следва:
Проверете дали е инсталирана функцията за пълнотекстово търсене на SQL SERVER
Командата е следната:
SQL Server Пълнотекстово търсене, Пълен текстов индекс
Първо, създайте нова тестова библиотека и вмъкнете тестови данни. Скриптът е следният:
Създайте пълнотекстово съдържание
За съхранение на индекса на пълния текст се използва пълнотекстово съдържание. Можете да го създадете директно чрез следните скриптове:
Създаване на пълнотекстови индекси за таблици с бази данни
Когато създавате пълнотекстов индекс за таблица с база данни, трябва да посочите съответния език. Тъй като сегментацията на думите варира между езиците, SQL Server използва сегментацията на думите на съответния език, за да обработи данните в таблицата. Пълнотекстовото търсене на SQL Server поддържа около 50 различни езика, което ви позволява да разглеждате всички поддържани езици чрез заявки sys.fulltext_languages таблици. Командване:
Както е показано по-долу:
След това добавяме пълен текстов индекс за китайски опростен в полетата за заглавие и съдържание в таблицата Новини:
Пълнотекстово търсене на предикати и функции
Пълнотекстовите заявки използват пълни текстови предикати (СЪДЪРЖАиСВОБОДЕН ТЕКСТ) и пълнотекстови функции (CONTAINSTABLEиFREETEXTTABLE)。 Те поддържат сложния синтаксис Transact-SQL, който поддържа различни форми на термини за заявки.
Разликата между CONTAINS и FREETEXT
CONTAINS: Входът към хиперлинк е видим.
Използвайте прецизни методи за съвпадение, за да намерите конкретни думи или фрази в текста. Поддържа сложни условия за заявки, като търсене по близост (например, думите трябва да се появяват близо една до друга), търсене по префикс и други. Обикновено се използва в ситуации, когато е необходим по-специфичен контрол върху резултатите от търсенето.
FREETEXT: Входът към хиперлинк е видим.
Осигурява по-гъвкаво и базирано на естествен език търсене. Не са необходими специални критерии за търсене; Автоматично анализира входния текст и се опитва да намери свързано съдържание. Той е по-подходящ за потребители, които искат да извършват прости търсения по ключови думи като Google, без да се притесняват за конкретни места или формати.
Командите са следните:
Както е показано по-долу:
CONTAINSTABLE и FREETEXTTABLE
CONTAINSTABLE връща таблици, които отговарят на критериите за заявка. В SQL операторите можем да ги третираме като обикновени таблици, а заявките с CONTAINSTABLE връщат стойност RANK и KEY за всеки ред. RANK се използва за обозначаване на степента на съвпадение на корелацията, със стойности между 0~1000, а KEY е идентификаторът на основната таблица. FREETEXTTABLE първо сегментира думите и изреченията за запитване, след това заявките за съвпадение. Командата е следната:
Както е показано по-долу:
Освен това можете да проверите резултатите от сегментацията, като направите заявка sys.dm_fts_parser:
Както е показано по-долу:
Въпрос
Въпрос: CONTAINS по подразбиране не поддържа неясни заявки. Ако въведете CONTAINS(Column, 'apple'), тя ще съвпадне с кореновата дума (например apples), но не и с ананас. Решение: Ако са нужни неясни заявки, те трябва да бъдат поставени преди и след джокериДобавете двойни кавички и звездичка:CONTAINS(Колона, '"*apple*"')
Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим. |
Предишен:Уебсайт за платформа за дистанционна работа, работа и фрийланс
|