데이터 베이스 MySQL 튜토리얼 MySQL 전체 텍스트 인덱스 애플리케이션에 대한 간략한 튜토리얼

MySQL 전체 텍스트 인덱스 애플리케이션에 대한 간략한 튜토리얼

Dec 15, 2016 pm 04:18 PM

이 글에서는 다음과 같은 측면에서 MySQL 전체 텍스트 인덱스에 대한 기본 지식을 소개합니다.

1. MySQL 전체 텍스트 인덱스에 대한 몇 가지 참고 사항

2. index

3. 여러 검색 유형 소개

4. 여러 검색 유형의 예


전체 텍스트 인덱싱에 대한 몇 가지 고려 사항

1. 검색은 전체 텍스트 유형의 인덱스 열에서 이루어져야 하며 match에 지정된 열은 전체 텍스트로 지정되어야 합니다.

2 테이블 엔진이 MyIsam인 테이블에만 적용할 수 있습니다. type (MySQL 5.6 이상 Innodb 테이블 엔진에서도 사용 가능)

3. 전체 텍스트 인덱스는 char, varchar, text 유형의 열에만 생성할 수 있습니다

4 . 일반 인덱스와 마찬가지로 테이블을 정의할 수 있습니다. 테이블을 생성한 후

를 추가하거나 수정할 수도 있습니다. 5. 대규모 레코드 삽입의 경우 인덱스 없이 테이블에 데이터를 삽입한 다음 인덱스를 생성하는 것이 인덱스가 있는 데이터 테이블에 삽입하는 것보다 훨씬 빠릅니다

6. 검색 문자열은 테이블의 열 이름이 아닌 상수 문자열이어야 합니다

7. 검색 기록의 선택도가 50%를 초과하면 일치 항목이 없는 것으로 간주됩니다(자연 검색에만 제한됨)


전체 텍스트 색인 검색 구문

MATCH (列名1, 列名2,…) AGAINST (搜索字符串 [搜索修饰符])
로그인 후 복사

일치 1, 2 등에 지정된 열 이름은 전체 텍스트 인덱스 설정 시 지정된 열 이름입니다. 후속 검색 한정자는 다음과 같습니다.

search_modifier:
{
IN NATURAL LANGUAGE MODE
| IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION
| IN BOOLEAN MODE
| WITH QUERY EXPANSION
}
로그인 후 복사

여러 검색 유형 소개

위의 검색 수정자는 실제로 세 가지 전체 텍스트 검색 유형을 보여줍니다.

자연 언어 모드

소개 : 기본 검색 형식(검색 수정자가 없거나 수정자가 LANGUAGE MODE의 경우 IN NATURAL임)

특징:

검색 문자열의 문자는 일반 문자로 구문 분석되어 특별한 의미 없음

마스킹된 문자 목록의 문자열 필터링

레코드의 선택도가 50%를 초과하면 일반적으로 불일치로 간주됩니다.

반환된 레코드는 레코드의 관련성에 따라 정렬되어 표시됩니다.

IN BOOLEAN MODE

소개: Boolean 모드 검색(검색 수정자가 IN BOOLEAN MODE인 경우)

특징:

은 특정 규칙에 따라 검색 문자열의 특수 문자의 의미를 분석하고 몇 가지 논리적 규칙을 수행합니다. 예: 특정 단어가 나타나야 하거나 나타날 수 없습니다.

이 유형의 검색으로 반환된 레코드는 관련성에 따라 정렬되지 않습니다

WITH QUERY EXPANSION

소개: 실제로는 2번의 자연 검색이 수행되는 약간 더 복잡한 검색 형태입니다. , IN NATURAL LANGUAGE MODE라는 수식어를 사용하여 직접적인 성관계를 기록한 기록을 반환했습니다. WITH QUERY EXPANSION 또는 WITH QUERY EXPANSION 수정자

특징: 이 검색 유형은 실제로 간접 검색 기능을 제공합니다. 예: 특정 단어를 검색했는데 반환된 첫 번째 줄은 다음과 같습니다. 검색어. 1차 검색결과의 기록어를 기반으로 2차 매칭을 수행할 수 있으므로, 일부 간접적인 관계를 가지고 일치하는 기록을 찾는 것이 가능하다.

여러 검색 유형의 예

자연어 모드 모드의 적용:

는 여전히 제품 테이블에 적용되며 이름에 전체 텍스트 인덱스가 설정되어 있습니다. field. 키워드를 기준으로 이름 열의 해당 레코드를 일치시켜야 하기 때문에

SQL 문은 다음과 같습니다.

SELECT * FROM product WHERE match(name) against(‘auto')
로그인 후 복사

1w 이상, 1.15초가 걸리므로 효과는 다음과 같습니다. 여전히 좋음

참고: 기본적으로 레코드는 관련성을 기준으로 높은 값에서 낮은 값으로 반환됩니다.

FROM 제품에 대해 일치(이름)를 선택할 수 있습니다. 값은 0에서 1 사이입니다. 0은 레코드가 일치하지 않음을 의미합니다.

몇 가지 중요한 기능:

1. 무시되는 단어

기본 전체 텍스트 인덱스가 너무 짧습니다. 4자 이상의 단어입니다. 구성에서 ft_min_word_len을 수정하여 어휘 목록에서 단어를 차단하도록 구성할 수 있습니다. 기본 전체 텍스트 인덱스는 일부 일반적인 단어를 차단합니다. 이러한 단어는 너무 일반적이고 의미론적 영향이 없기 때문에 검색 프로세스에서 무시됩니다. 물론 이 목록도 구성 가능합니다.

2. 단어 분할을 수행하는 방법


전체 텍스트 인덱스는 연속된 유효한 문자(정규식에서 w와 일치하는 문자 집합)를 "'"도 포함할 수 있는 단어로 간주합니다. 그러나 연속된 두 개의 ''는 구분 기호로 간주됩니다. 공백, 쉼표, 마침표 등과 같은 기타 구분 기호.

부울 모드 적용:

부울 일치 모드에서는 일부 특수 기호를 추가하고 일부 검색 프로세스 논리 기능을 추가할 수 있습니다. 공식 웹사이트에 제공된 예(mysql 및 (Yousql 문 제외):

SELECT * FROM articles WHERE MATCH (title,body)
-> AGAINST (‘+MySQL -YourSQL' IN BOOLEAN MODE);
로그인 후 복사
검색에 대한 더 많은 제어권을 갖고 있음을 알 수 있습니다. 그들 중 일부는 "더 높게" 보입니다.

사실 위 연산은 여러 가지 의미를 내포하고 있습니다.

더하기 기호: 동등 및

빼기 기호: not과 동등

아니요: 또는 동등


부울 유형 검색의 몇 가지 중요한 기능을 살펴보겠습니다.

1. 没有50%记录选择性的限制,即使搜索结果记录超过总数的50%也同样返回结果
2. 不会自动的按记录的相关性进行降序排序
3. 可以直接应用在没有创建fulltext的全文索引上,但是这样会查询的非常慢,所以说还是别用了。
4. 支持最小、最大单词长度
5. 应用屏蔽词列表

布尔搜索支持的操作符:

n 加号 +:指示修饰的单词必须出现在记录中
n 减号 -:指示修饰的单词必须不能出现在记录中
n 没有任何操作符:单词可有可无,但是包含该词的记录相关性高
n 双引号 “ : 将一个词组作为一个匹配。如:”one word” 匹配one word在一起的单词

下面是官方的一些实例:

至少包含一个词的记录
‘apple banana'
   
必须包含着两个词
‘+apple +juice'
   
必须包含apple,包含macintosh的记录相关性高,也可以不包含
‘+apple macintosh'
   
必须包含apple且不能喊有macintosh
‘+apple -macintosh'
   
查找apple开头单词的记录
‘apple*'
   
完整匹配some words单词
‘”some words”‘
로그인 후 복사

   

了解了基本的mysql全文索引知识,觉得它的全文索引比like当然是强了很多。但是面对高级的搜索还是略显简陋,且性能问题也是担忧。

以上就是MySQL全文索引应用简明教程的内容,更多相关文章请关注PHP中文网(www.php.cn)!


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

Docker에서 MySQL 메모리 사용을 줄입니다 Docker에서 MySQL 메모리 사용을 줄입니다 Mar 04, 2025 pm 03:52 PM

이 기사는 Docker에서 MySQL 메모리 사용을 최적화합니다. 모니터링 기술 (Docker Stats, Performance Schema, 외부 도구) 및 구성 전략에 대해 설명합니다. 여기에는 Docker 메모리 제한, 스와핑 및 CGroups와 함께 포함됩니다

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. Mar 04, 2025 pm 04:01 PM

이 기사에서는 MySQL의 "공유 라이브러리를 열 수 없음"오류를 다룹니다. 이 문제는 MySQL이 필요한 공유 라이브러리 (.so/.dll 파일)를 찾을 수 없음에서 비롯됩니다. 솔루션은 시스템 패키지 M을 통한 라이브러리 설치 확인과 관련이 있습니다.

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Mar 04, 2025 pm 03:54 PM

이 기사는 Linux에 MySQL을 직접 설치하는 것과 Phpmyadmin이없는 Podman 컨테이너 사용을 비교합니다. 각 방법에 대한 설치 단계에 대해 자세히 설명하면서 Podman의 격리, 이식성 및 재현성의 장점을 강조하지만 또한

sqlite 란 무엇입니까? 포괄적 인 개요 sqlite 란 무엇입니까? 포괄적 인 개요 Mar 04, 2025 pm 03:55 PM

이 기사는 자체 포함 된 서버리스 관계형 데이터베이스 인 SQLITE에 대한 포괄적 인 개요를 제공합니다. SQLITE의 장점 (단순성, 이식성, 사용 용이성) 및 단점 (동시성 제한, 확장 성 문제)에 대해 자세히 설명합니다. 기음

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 Mar 04, 2025 pm 03:49 PM

이 안내서는 Homebrew를 사용하여 MacOS에 여러 MySQL 버전을 설치하고 관리하는 것을 보여줍니다. 홈 브루를 사용하여 설치를 분리하여 갈등을 방지하는 것을 강조합니다. 이 기사에는 설치, 서비스 시작/정지 서비스 및 Best Pra에 대해 자세히 설명합니다

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? Mar 18, 2025 pm 12:01 PM

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

See all articles