데이터 베이스 MySQL 튜토리얼 SQL Server의 전체 텍스트 검색 기능에 대한 자세한 설명

SQL Server의 전체 텍스트 검색 기능에 대한 자세한 설명

Dec 18, 2017 am 09:03 AM
server 기능 찾다

SQL Server의 전체 텍스트 검색은 단어 분할을 기반으로 하는 텍스트 검색 기능이며 전체 텍스트 인덱싱을 사용합니다. 전체 텍스트 인덱스는 기존의 균형 트리(B-Tree) 인덱스 및 열 저장 인덱스와 달리 반전 인덱스(Invert Index)라는 데이터 테이블로 구성되며 단어 세그먼트와 단어 세그먼트 간의 매핑 관계를 저장합니다. 행의 고유 키. 반전된 인덱스는 전체 텍스트 인덱스를 만들거나 전체 텍스트 인덱스를 업데이트할 때 SQL Server에서 자동으로 만들고 유지 관리합니다. 전체 텍스트 인덱스에는 주로 단어 분리기, 형태소 분석기, 동의어 분석기의 세 가지 분석기가 포함되어 있습니다. 전체 텍스트 인덱스에 저장되는 데이터는 단어 분할 및 해당 위치와 같은 정보입니다. 단어 분할은 특정 언어의 문법 규칙을 기반으로 특정 기호에 따라 단어 경계를 찾아 텍스트를 "단어"로 분해합니다. 각 단어를 단어 분할(용어)이라고 합니다. 전체 텍스트 인덱스는 때때로 단어 분할의 어간을 추출하고 어간의 여러 파생 형태를 단일 어간으로 저장합니다. 이를 어간 기반의 동의어로 변환합니다. 사용자가 제공한 사용자 정의 동의어 목록에서 이 과정을 동의어 추출이라고 합니다.

전체 텍스트 인덱스를 생성하려면 사용자 테이블에서 텍스트 데이터를 분할(Word breaker)하고 어간을 추출(Stemmer)하고, 동의어를 변환(Thesaurus)하고, 단어 분할에서 중지 단어(Stopword)를 필터링하는 것입니다. , 최종 처리 후속 데이터는 전체 텍스트 인덱스에 저장됩니다. 데이터를 전체 텍스트 데이터로 저장하는 프로세스를 채우기 또는 크롤링 프로세스라고 합니다. 전체 텍스트 인덱스의 업데이트 방법은 수동 채우기, 자동 채우기 또는 증분 채우기일 수 있습니다.

1. 전체 텍스트 카탈로그 및 고유 인덱스 만들기

전체 텍스트 인덱스를 만들기 전에 전체 텍스트 카탈로그(전체 텍스트 카탈로그)를 만들어야 합니다. 텍스트 인덱스이며 전체 텍스트 인덱스의 컨테이너입니다. 모든 전체 텍스트 인덱스는 전체 텍스트 카탈로그에 속해야 합니다. 전체 텍스트 카탈로그는 전체 텍스트 인덱스의 저장 위치에 관계없이 데이터베이스 스키마와 동일한 논리적 구조입니다.

create fulltext catalog catalog_test
as default;
로그인 후 복사

전체 텍스트 인덱스를 생성하려면 Null을 허용하지 않는 고유한 단일 열 인덱스가 기본 테이블에 있어야 합니다. 전체 텍스트 엔진은 이 인덱스를 사용하여 기본 테이블의 각 항목을 결합합니다. 고유한 인덱스 키에 매핑되며, 반전된 인덱스에는 인덱스 키와 단어 세그먼트 간의 매핑 관계가 저장됩니다.

create unique index uidx_dbLogID 
on [dbo].[DatabaseLog]
([DatabaseLogID]);
로그인 후 복사

둘째, 전체 텍스트 인덱스 생성

각 테이블은 하나의 전체 텍스트 인덱스만 생성할 수 있습니다. 전체 텍스트 인덱스를 생성할 때는 전체 텍스트 인덱스에 저장된 파일 그룹인 중지 단어 목록을 고려해야 합니다. 전체 텍스트 인덱스와 연결된 전체 텍스트 인덱스의 업데이트 방법 텍스트와 연결된 언어, 전체 텍스트 인덱스 열은 텍스트 필드여야 합니다(예:

create fulltext index 
on [dbo].[DatabaseLog]
(
[tsql] language 1033
)
key index ui_dbLogID
on (catalog_test,filegroup [primary]) 
with(change_tracking=off ,no population ,stoplist=system);
로그인 후 복사

1, 언어(언어)).

옵션 언어는 선택 사항이며 열 수준에서 언어를 지정하는 데 사용됩니다. 이 옵션의 값은 언어 이름 또는 LCID일 수 있습니다. 언어 옵션이 지정되지 않으면 SQL Server 인스턴스의 기본 언어가 사용됩니다. 시스템 보기 sys.fulltext_언어s ​​(Transact-SQL)에서 시스템이 지원하는 언어와 해당 LCID 및 이름을 확인하세요.

2, 전체 텍스트 카탈로그(fulltext_catalog)

옵션 fulltext_catalog_name은 전체 텍스트 인덱스의 그룹을 지정하는 데 사용됩니다.

3, 파일 그룹(filegroup)

옵션 filegroup filegroup_name은 에 대한 파일 그룹을 지정하는 데 사용됩니다. 전체 텍스트 인덱스 스토리지, 파일 그룹이 지정되지 않은 경우 전체 텍스트 인덱스와 기본 테이블은 동일한 파일 그룹에 저장됩니다. 전체 텍스트 인덱스 업데이트는 IO 집약적인 작업이므로 전체 텍스트 인덱스를 더 빠르게 업데이트하려면 전체 텍스트 인덱스를 기본 테이블과 다른 물리적 하드 디스크나 파일 그룹에 저장하는 것이 가장 좋습니다. 최대 IO 동시성.

4. 전체 텍스트 인덱스를 채우는 방법은 일반 인덱스와 동일합니다. 기본 테이블 데이터가 업데이트되면 전체 텍스트 인덱스가 자동으로 업데이트됩니다. 전체 텍스트 인덱스를 수동으로 또는 특정 시간 간격으로 업데이트하도록 구성할 수도 있습니다. 전체 텍스트 인덱스를 자동으로 업데이트하려면 클릭하세요.

옵션 CHANGE_TRACKING은 전체 텍스트 인덱스 열과 관련된 데이터 업데이트(업데이트, 삭제 또는 삽입)를 전체 텍스트 인덱스와 동기화해야 하는지 여부를 지정하는 데 사용됩니다.

•CHANGE_TRACKING = MANUAL: 수동 업데이트

•CHANGE_TRACKING =AUTO : 자동 업데이트, 기본 설정, 기본 테이블 데이터가 변경되면 전체 텍스트 인덱스가 자동으로 업데이트됩니다.
•CHANGE_TRACKING =OFF, NO POPULATION: 업데이트하지 않고 NO POPULATION 옵션을 지정하여 전체 텍스트를 생성한 후 이를 나타냅니다. index, SQL Server는 전체 텍스트 인덱스를 업데이트(채우기)하지 않습니다. Option NO POPULATION을 지정하지 않으면 SQL Server는 전체 텍스트 인덱스를 생성한 후 전체 텍스트 인덱스를 업데이트합니다.

5. 중지 단어(STOPLIST)

중지 단어(StopWord)는 의미 없는 단어라고도 합니다. 각 전체 텍스트 인덱스는 기본적으로 시스템 중지 단어와 연결됩니다. (시스템 중지 목록). 전체 텍스트 엔진은 전체 텍스트 인덱스에 중지 단어가 포함되지 않도록 단어 분할에서 중지 단어를 제거합니다.

STOPLIST [ = ] { OFF | SYSTEM | stoplist_name }
로그인 후 복사

셋, 전체 텍스트 인덱스 채우기

填充全文索引也叫做爬虫(crawl)进程,或填充(Population)进程。由于创建或填充全文索引会消耗大量的系统(IO、内存)资源,因此尽量选择在系统空闲时对全文索引进行填充。在创建全文索引时,通过指定选项 CHANGE_TRACKING= MANUAL,或 CHANGE_TRACKING= OFF, NO POPULATION,新建的全文索引不会立即填充,用户可以选择在系统空闲时,使用 alter fulltext index 语句执行填充操作。只有填充全文索引之后,全文索引才包含基础表的分词数据。

alter fulltext index 
on table_name
start { full | incremental | update } population;
로그인 후 복사

更新全文索引有三种方式:

•FULL POPULATION:全部填充,从基础表中获取每一行,重新编入全文索引;
•INCREMENTAL POPULATION:增量填充,前提是基础表中包含timestamp字段,从上一次填充之后,只把更新之后的数据编入全文索引;
•UPDATE POPULATION:更新填充,从上一次填充之后执行更新(insert、update、或delete)操作的数据行重新编入索引;

在创建全文索引时,如果指定CHANGE_TRACKING=AUTO   或   CHANGE_TRACKING=  OFF , 那么新建的全文索引会立即开始填充进程。

四,使用 contains 谓词查询全文索引

如果想要在查询中使用全文索引,通常使用CONTAINS谓词来调用全文索引,实现比LIKE关键字更复杂的文本匹配查询,而LIKE关键字是模糊匹配,不会调用全文索引。

例如,利用contains谓词执行单个分词的完全匹配查询:

select [tsql] 
from [dbo].[DatabaseLog] 
where contains([tsql], 'searchword', language 1033);
로그인 후 복사

全文查询跟Like相比,速度更快,支持的搜索功能更复杂,使用contains谓词,不仅能够执行分词的完全匹配或分词的前缀匹配查询,还能够执行基于词根的查询,基于自定义同义词的查询,基于距离和顺序的相邻分词查询。但是,和Like 相比,contains谓词不能进行后缀匹配查询。

contains谓词返回的结果是布尔值,如果全文索引列中包含指定的关键字或查找模式(pattern),返回TRUE;否则,返回FALSE。

contains谓词支持word查询和短语查询,word是指单个分词,短语(phrase)是由多个word和间隔的空格组成的,对于短语,必须使用双引号,将多个word组成一个短语。

1,逻辑组合查询

使用and ,and not, 或 or 逻辑运算符 匹配多个word 或 多个phrase

CONTAINS(Name, '"Mountain" OR "Road" ')
CONTAINS(Name, ' Mountain OR Road ')
로그인 후 복사

2,前缀查询

使用contains谓词进行前缀匹配,和like 'prefix%'功能相同,只不过contains谓词使用“*”作为通配符,“*”匹配0,1或多个字符,前缀匹配的写法是:'"prefix*"',全文索引只能执行前缀匹配。

CONTAINS(Name, ' "Chain*" ')
CONTAINS(Name, '"chain*" OR "full*"')
로그인 후 복사

3,查询同义词(thesaurus)或词干(stemmer)

Stemmer(词干),例如,根据语法规程,英语的动词 根据数(单数,复数),人称,时态的不同而存在不同的变化形式,这些单词都是同源的。

CONTAINS(Description, ' FORMSOF (INFLECTIONAL, ride) ')
로그인 후 복사

THESAURUS (同义词),需要导入XML进行配置,SQL Server 提供一个默认的Thesaurus file,是Empty的。如果在Thesaurus file 配置“Author”,“Writer”,“journalist” 是同义词,在使用fulltext index查询时,只要满足任意一个同义词,都匹配成功。

CONTAINS(Description, ' FORMSOF (THESAURUS, author) ')
로그인 후 복사

4,距离查询

使用 near 函数,查询匹配相邻分词的数据行,near函数的定义如下,用于需要在查询模式中指定距离查询的查询模式:

NEAR ( ( { <simple_term> | <prefix_term> } [ ,…n ] ) [, <maximum_distance> ] [, <match_order> ] )
로그인 후 복사

例如:使用Near 函数指定相邻分词的距离和匹配顺序,near((term1,term2,term3),5)表示任意两个term之间的距离不能超过5, near((term1,term2,term3),5,true),表示任意两个term的距离不能超过5,并且按照 term1,term2,term3的顺序存在于字符串中。

--regardless of the intervening distance and regardless of order
CONTAINS(column_name, 'NEAR(term1,"term3 term4")')
--searches for "AA" and "BB", in either order, within a maximum distance of five
CONTAINS(column_name, 'NEAR((AA,BB),5)')
--in the specified order with regardless of the distance
CONTAINS(column_name, 'NEAR ((Monday, Tuesday, Wednesday), MAX, TRUE)')
로그인 후 복사

对于 near((term1,term2,term3),5,true),term1 和 term5之间最多存在5个term,不包括内部的搜索分词,“term2”,例如:

CONTAINS(column_name, 'NEAR((AA,BB,CC),5)')
로그인 후 복사

这个查询会匹配下面的文本,注意,内部的搜索分词CC没有计算距离:

BB one two CC three four five AA
로그인 후 복사

例如,在原文本中,分词bike和control的最大距离不能超过10,分词bike必须出现在分词control的前面:

CONTAINS(Comments , 'NEAR((bike,control), 10, TRUE)')
로그인 후 복사

SQL Server提供的全文搜索功能,比LIKE关键字丰富,具备初级的全文搜索功能,速度快,维护简单,缺点是,全文搜索功能非常有限,在实际的开发中,可以配合开源的全文搜索引擎,例如,Solr,Elasticsearch等来开发功能更强大的全文搜索功能。

相关推荐:

PlateSpin备份时SQL Server的信息介绍

Python操作SQL Server数据库的方法

SQL server 数据库的数据完整性

위 내용은 SQL Server의 전체 텍스트 검색 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Doubao 앱에는 어떤 기능이 있나요? Doubao 앱에는 어떤 기능이 있나요? Mar 01, 2024 pm 10:04 PM

Doubao 앱에는 많은 AI 생성 기능이 있을 예정인데 Doubao 앱에는 어떤 기능이 있나요? 사용자는 이 소프트웨어를 사용하여 그림을 만들고, AI와 채팅하고, 사용자를 위한 기사를 생성하고, 모든 사람이 노래를 검색하도록 도울 수 있습니다. Doubao 앱의 이 기능 소개는 구체적인 작동 방법을 알려드릴 수 있습니다. 구체적인 내용은 아래와 같으니 한번 살펴보세요! Doubao 앱에는 어떤 기능이 있나요? 답변: 그림 그리기, 채팅, 기사 쓰기, 노래 찾기 등이 가능합니다. 기능 소개: 1. 질문 쿼리: AI를 사용하여 질문에 대한 답변을 더 빠르게 찾을 수 있으며, 모든 종류의 질문을 할 수 있습니다. 2. 이미지 생성: AI를 사용하면 모든 사람에게 일반적인 요구 사항만 알려주면 됩니다. 3. AI 채팅: 사용자와 채팅할 수 있는 AI를 생성할 수 있으며,

vivox100s와 x100의 차이점: 성능 비교 및 ​​기능 분석 vivox100s와 x100의 차이점: 성능 비교 및 ​​기능 분석 Mar 23, 2024 pm 10:27 PM

vivox100s와 x100 휴대폰은 모두 in vivo 휴대폰 제품군의 대표적인 모델입니다. 두 휴대폰은 각각 서로 다른 시대의 vivo 첨단 기술 수준을 대표하므로 디자인, 성능, 기능 면에서 일정한 차이가 있습니다. 이번 글에서는 소비자들이 자신에게 꼭 맞는 휴대폰을 선택할 수 있도록 두 휴대폰을 성능비교와 기능분석 측면에서 자세히 비교해보겠습니다. 먼저 vivox100s와 x100의 성능 비교를 살펴보겠습니다. vivox100s에는 최신 기술이 탑재되어 있습니다.

셀프미디어란 정확히 무엇인가? 주요 특징과 기능은 무엇입니까? 셀프미디어란 정확히 무엇인가? 주요 특징과 기능은 무엇입니까? Mar 21, 2024 pm 08:21 PM

인터넷의 급속한 발전으로 셀프미디어라는 개념은 사람들의 마음속에 깊이 뿌리내렸습니다. 그렇다면 셀프미디어란 정확히 무엇인가? 주요 특징과 기능은 무엇입니까? 다음에는 이러한 문제를 하나씩 살펴보겠습니다. 1. 셀프미디어란 정확히 무엇인가? We-media는 이름에서 알 수 있듯이 당신이 미디어라는 뜻입니다. 개인이나 팀이 인터넷 플랫폼을 통해 콘텐츠를 독립적으로 생성, 편집, 출판 및 전파할 수 있는 정보 매체를 말합니다. 신문, 텔레비전, 라디오 등과 같은 전통적인 미디어와 달리 셀프 미디어는 더욱 상호작용적이고 개인화되어 있어 모든 사람이 정보의 생산자이자 전파자가 될 수 있습니다. 2. 셀프미디어의 주요 특징과 기능은 무엇입니까? 1. 낮은 문턱: 셀프미디어의 등장으로 미디어 산업에 진출하기 위한 문턱이 낮아졌습니다. 더 이상 번거로운 장비와 전문팀이 필요하지 않습니다.

WPS 테이블에서 검색 중인 데이터를 찾을 수 없습니다. 검색 옵션 위치를 확인하세요. WPS 테이블에서 검색 중인 데이터를 찾을 수 없습니다. 검색 옵션 위치를 확인하세요. Mar 19, 2024 pm 10:13 PM

지능이 지배하는 시대에는 사무용 소프트웨어도 대중화되었으며, 유연성으로 인해 대다수의 직장인이 Wps 형식을 채택합니다. 직장에서는 간단한 양식 작성과 텍스트 입력뿐만 아니라 실제 업무를 완료하기 위해 더 많은 운영 기술을 습득해야 합니다. 데이터가 포함된 보고서와 양식을 사용하는 것이 더욱 편리하고 명확하며 정확합니다. 오늘 우리가 당신에게 전하는 교훈은: WPS 테이블이 당신이 찾고 있는 데이터를 찾을 수 없다는 것입니다. 왜 검색 옵션 위치를 확인해야 합니까? 1. 먼저 Excel 테이블을 선택하고 두 번 클릭하여 엽니다. 그런 다음 이 인터페이스에서 모든 셀을 선택합니다. 2. 그런 다음 이 인터페이스의 상단 도구 모음에 있는 "파일"에서 "편집" 옵션을 클릭합니다. 3. 둘째, 이 인터페이스에서 "

Windows 서버 백업을 설치, 제거 및 재설정하는 방법 Windows 서버 백업을 설치, 제거 및 재설정하는 방법 Mar 06, 2024 am 10:37 AM

WindowsServerBackup은 WindowsServer 운영 체제와 함께 제공되는 기능으로, 사용자가 중요한 데이터 및 시스템 구성을 보호하고 중소기업 및 대기업 수준의 기업에 완벽한 백업 및 복구 솔루션을 제공하도록 설계되었습니다. Server2022 이상을 실행하는 사용자만 이 기능을 사용할 수 있습니다. 이 문서에서는 WindowsServerBackup을 설치, 제거 또는 재설정하는 방법을 설명합니다. Windows Server 백업을 재설정하는 방법 서버 백업에 문제가 있거나 백업에 너무 오랜 시간이 걸리거나 저장된 파일에 액세스할 수 없는 경우 Windows Server 백업 설정을 재설정하는 것을 고려할 수 있습니다. Windows를 재설정하려면

Xiaohongshu 계정 관리 소프트웨어의 기능은 무엇입니까? Xiaohongshu 계정을 운영하는 방법은 무엇입니까? Xiaohongshu 계정 관리 소프트웨어의 기능은 무엇입니까? Xiaohongshu 계정을 운영하는 방법은 무엇입니까? Mar 21, 2024 pm 04:16 PM

Xiaohongshu가 젊은이들 사이에서 인기를 끌면서 점점 더 많은 사람들이 이 플랫폼을 사용하여 자신의 경험과 인생 통찰력의 다양한 측면을 공유하기 시작했습니다. 여러 Xiaohongshu 계정을 효과적으로 관리하는 방법이 중요한 문제가 되었습니다. 이 글에서는 Xiaohongshu 계정 관리 소프트웨어의 일부 기능에 대해 논의하고 Xiaohongshu 계정을 더 잘 관리하는 방법을 살펴보겠습니다. 소셜 미디어가 성장함에 따라 많은 사람들이 여러 소셜 계정을 관리해야 한다는 사실을 깨닫게 되었습니다. 이는 Xiaohongshu 사용자에게도 어려운 과제입니다. 일부 Xiaohongshu 계정 관리 소프트웨어는 자동 콘텐츠 게시, 예약 게시, 데이터 분석 및 기타 기능을 포함하여 사용자가 여러 계정을 보다 쉽게 ​​관리할 수 있도록 도와줍니다. 이러한 도구를 통해 사용자는 자신의 계정을 보다 효율적으로 관리하고 계정 노출과 관심을 높일 수 있습니다. 또한 Xiaohongshu 계정 관리 소프트웨어에는

모바일 타오바오 매장 검색하는 방법 매장명 검색하는 방법 모바일 타오바오 매장 검색하는 방법 매장명 검색하는 방법 Mar 13, 2024 am 11:00 AM

모바일 타오바오 앱 소프트웨어는 언제 어디서나 구입할 수 있으며, 모든 제품의 가격표가 명확하여 더욱 편리한 쇼핑을 즐길 수 있습니다. 원하는 대로 자유롭게 검색하고 구매할 수 있습니다. 개인 배송 주소와 연락처를 추가하면 택배사에서 쉽게 연락할 수 있으며, 최신 물류 동향도 실시간으로 확인할 수 있습니다. 사용자가 처음 사용하는 경우 제품을 검색하는 방법을 모르면 검색창에 키워드만 입력하면 모든 제품 결과를 자유롭게 찾을 수 있습니다. 에디터는 모바일 타오바오 사용자가 매장 이름을 검색할 수 있는 자세한 온라인 방법을 제공합니다. 1. 먼저 휴대폰에서 타오바오 앱을 열고,

PHP 팁: 이전 페이지로 돌아가는 기능을 빠르게 구현 PHP 팁: 이전 페이지로 돌아가는 기능을 빠르게 구현 Mar 09, 2024 am 08:21 AM

PHP 팁: 이전 페이지로 돌아가는 기능을 빠르게 구현하세요. 웹 개발을 하다 보면 이전 페이지로 돌아가는 기능을 구현해야 하는 경우가 종종 있습니다. 이러한 작업은 사용자 경험을 향상시키고 사용자가 웹 페이지 간을 더 쉽게 탐색할 수 있게 해줍니다. PHP에서는 몇 가지 간단한 코드를 통해 이 기능을 구현할 수 있습니다. 이번 글에서는 이전 페이지로 돌아가는 기능을 빠르게 구현하는 방법을 소개하고 구체적인 PHP 코드 예제를 제공하겠습니다. PHP에서는 $_SERVER['HTTP_REFERER']를 사용하여 이전 페이지의 URL을 가져올 수 있습니다.

See all articles