MySQL의 전체 텍스트 검색

오늘은 느린을 최적화하기 위해 연주 SQL 속 적용

SELECT * FROM 'table' WHERE `field` LIKE '%word%'

어디에 문제가 지금 여기에있다 – 마지막 부분 '% 단어 %’ 더욱 특정 문자에 % 단어 앞에, 이는 수행. 와일드 카드 기호 % ,값 전에, 직접 우리가 느린에 직접 조회 할 수 있습니다, 이 방법으로 응용 프로그램이 우리를 중지하기 때문에 인덱스 필드를 사용하는. 결정 항상, 하지만 항상 명확하지 😆 전체 MySQL의 그들은이 문제에 대한 해결책을 갖고 전체 텍스트 검색 색인 필드. 어떻게 필드를 변경 않는 것은 작성된 문서를 많이하고있다, 하지만 서둘러 상단 요청을 변경하는 방법을 설명합니다, 우리는 마침내 작은 드라마에 도착 것이기 때문에. 위의 해당하는 전체 텍스트 필드로 Sledka, 응용 프로그램은 유형 변경해야합니다:

SELECT * FROM `table` WHERE MATCH (field) AGAINST ('word')

구조가 명백하고 불필요한 설명을 필요로하지 않도록. 위의 쿼리는 발효됩니다, 단어의 경우, 당신은 적어도 요청을위한 4 기호, 기본값은, 당신은 값을 지정해야합니다 수정하려면, която желаете в my.cnf в частта [mysqld를] 선언 ft_min_word_len= 3 2, 1 не е добър избор очевидно 😉 . 당신은 당신의 테이블에 수리를 할 수있는 값과 다시 시작 MySQL의 서버 필요성을 변경 한 후, 새로운 인덱싱 순서는 발효. 지금까지 모든 것을 분명: 변경, 재설정, 인덱스를 rebildvam 내 요청 및 반환을 0 주문과 확인 😀

SHOW VARIABLES

나는 값을 볼, 나는 힘에 요청했습니다, 다시 인덱스를 rebildvam – 동일한 결과. 불쾌한 🙄, 매우 불편. 여기부터 큰 저주 꽤 있었다 창고 😀의 열쇠를 긁적을 시작했다, 꽤 흥미. 전체에, 나는 어떤 길을 몰라 설명서를 읽기 시작하고 흥미로운 통로에왔다

Such a technique works best with large collections (사실로, 그것은 신중하게이 방법을 조정했다). 매우 작은 테이블의 경우, 단어 분포를 적절하게 자신의 의미 론적 가치를 반영하지 않습니다, 이 모델은 때때로 이상한 결과가 발생할 수 있습니다. 예를 들면, 단어 "MySQL은"이전에 표시된 기사 테이블의 모든 행에 존재하지만,, 단어에 대한 검색 결과가 생성되지

ГРЕДА 😳 Дам табличката ми беше малка – 아직 테스트했다. 큰 테이블을 통해 우리의 응용 프로그램 2 000 000 순서가 가지 잤다. 글쎄 지금은 분명 문제. 명확한 결정을하려면, 나는 간단히 언급합니다, 즉, 전체 텍스트 검색을 지원합니다 3 고급 모드 BOOLEAN , 의 식자연 언어 기본적으로 마지막 작품으로. 문서를 확인할 수 있습니다 모드에 대한, 나는 설명 할 것 2-3 BOOLEAN 단어가 핵심이기 때문에. 그것은 논리적 연산자를 지원 AND, 또는 , NOT 등 인기있는 문구 몇 가지 마술을 할 수 있습니다, 하나가, 다른 등 없음. 유지 보수 및 기호 *, 와일드 카드 기호에 해당하는 % 그것은 유용 😉, 검색 용어의 길이보다 작을 때 ft_min_word_len 작은 트레이 ;). 약 적어도 나에게 표 100 순서는 완벽한 작업을 수행. 만 남겨보고 요청을 완료:

SELECT * FROM `table` WHERE MATCH (field)
AGAINST ('*word*' IN BOOLEAN MODE)

여기에 우리의 색인 와일드 카드 문자와 함께 작동 여부 순간이 온다 – 대답은 나도 몰라입니다. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

Zemanta에 의해 향상된

2 코멘트

    1. Е при големи таблици вече има други решения 😉 partitions да речем или други механизмни за fulltext search като Sphinx

회신을 남겨주

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드는 표시됩니다 *

안티 스팸 *