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_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);
IN NATURAL LANGUAGEMODE、IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION、IN BOOLEAN MODE、WITH QUERY EXPANSION。
위 내용은 PHP 검색 기능 원리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!