php 검색 기능 원리
PHP 검색 기능적 아이디어(단어 분할 + 매칭)
1. 가장 간단한 검색(like 문 매칭 사용)
이 검색은 가능합니다. 단일 단어 검색에만 사용됩니다
예: 사용자 닉네임 검색, 그룹 이름 검색 등
권장: "PHP 튜토리얼#🎜🎜 #"
2. 실제 검색(단어 분할 + 매칭)
이 방법은 기사 내용과 같은 데이터 세그먼트를 검색하는 데 사용할 수 있습니다. 제목 검색 등Principle:
Use the full-text search match in Mysql against# 🎜🎜#구현 단계1. Mysql 전체 텍스트 검색 전체 텍스트를 사용하기 위한 전제 조건:
테이블 유형은 다음과 같아야 합니다. be MyISAM (MySQL5.6 Innodb도 사용 가능)
전체 텍스트 검색을 설정하기 위한 필드 유형은 char, varchar, text여야 합니다
2 . 전체 텍스트 검색 고급 구성 설정(mysql 구성)#🎜 🎜#Mysql의 기본 구성은 색인 단어 길이가 4이므로 한자를 지원하려는 경우
*Unix 사용자는 my.cnf를 수정해야 합니다. 일반적으로 이 파일은 /etc/my.cnf에 있습니다. 찾을 수 없으면 먼저 / -name 'my.cnf를 검색하세요. '[mysqld] 위치에 추가:ft_min_word_len = 2다른 속성에는 ft_wordlist_charset = gbkft_wordlist_file = /home/soft/mysql/share/mysql/wordlist-gbk.txt
# 🎜🎜#ft_stopword_file = /home/soft/mysql/share/mysql/stopwords-gbk.txt
약간의 설명:
ft_wordlist_charset은 사전의 문자 집합을 나타내며 현재 지원됩니다. 좋은 것은 (UTF-8, gbk, gb2312, big5)
ft_wordlist_file은 단어 목록입니다. 파일에서 각 줄에는 단어와 해당 단어 빈도가 포함됩니다(여러 탭 또는 공백으로 구분, 명확성 전용)
ft_stopword_file은 색인화되지 않은 단어 목록을 한 줄에 하나씩 필터링하는 것을 의미합니다
.ft_min_word_len은 인덱스에 추가되는 최소 단어 길이입니다. 기본값은 4입니다. 중국어 단일 단어를 지원하기 위해 2
3으로 변경됩니다. 전체 텍스트 검색(테이블에 인덱스 추가)FullText 키워드를 사용하여 이미 존재하는 테이블의 필드를 식별합니다. ALTER TABLE(또는 CREATE INDEX)을 사용하여 생성합니다. 테이블의 인덱스입니다. 전체 구문: MATCH(col1,col2,…) AGAINST(expr[search_modifier])에 사용됩니다.
MATCH의 내용은 FULLTEXT 인덱스가 설정되어 데이터를 찾을 컬럼입니다.
AGAINST의 expr은 찾을 텍스트 내용입니다. , #🎜 🎜#search_modifier는 선택적 검색 유형입니다.
search_modifier의 가능한 값은 다음과 같습니다.CREATE fulltext INDEX index_name ON table_name(colum_name);search_modifier의 각 값은 자연어 전체 텍스트 검색과 자연어인 전체 텍스트 검색 유형을 나타냅니다. 쿼리 확장을 사용한 검색 언어 전체 텍스트 검색, 부울 전체 텍스트 검색, 쿼리 확장 전체 텍스트 검색(기본적으로 IN NATURAL LANGUAGE 모드가 사용됨)
IN NATURAL LANGUAGEMODE、IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION、IN BOOLEAN MODE、WITH QUERY EXPANSION。
위 내용은 PHP 검색 기능 원리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!