마리아에서 하위 문자열 또는 단어 검색DB
MariaDB에서 풀텍스트 검색을 하려고 하는데 처리할 수 없는 문제가 발생했습니다.
내 테이블은 다음과 같이 생성됩니다.
CREATE TABLE test (email TEXT, FULLTEXT(email)) ENGINE=InnoDB;
그런 다음 데이터를 삽입합니다.
MariaDB [frauctive]> select * from test;
+---------------------------------+
| email |
+---------------------------------+
| david@hotmail.com |
| michael@gmail.com |
| christian@gmail.com |
| david01@hotmail.com |
| davidblatt@hotmail.com |
| beckhamdavidbeckham@hotmail.com |
+---------------------------------+
함수와 일치 기능을 사용할 때 얻고 싶은 유사성 점수를 얻을 수 없습니다.
MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('*david*' IN BOOLEAN MODE) AS relevance
-> FROM test ORDER BY relevance DESC;
+---------------------------------+--------------------+
| email | relevance |
+---------------------------------+--------------------+
| david@hotmail.com | 0.0906190574169159 |
| david01@hotmail.com | 0.0906190574169159 |
| davidblatt@hotmail.com | 0.0906190574169159 |
| michael@gmail.com | 0 |
| christian@gmail.com | 0 |
| beckhamdavidbeckham@hotmail.com | 0 |
+---------------------------------+--------------------+
"beckhamdavidbeckham@hotmail.com" 항목에 'david' 패턴이 포함되어 있는데 점수가 0을 반환합니다.
이 문제를 해결할 수 있도록 도와주실 수 있나요?
* 와일드카드 정보:
0 문자 이상을 나타내는 와일드카드.그것은 단어 끝에만 나타날 수 있다.
출처 : https://mariadb.com/kb/en/mariadb/fulltext-index-overview/
시험해 보세요:
MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('david*' IN BOOLEAN MODE) AS relevance
-> FROM test ORDER BY relevance DESC;
또는
MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('david' IN BOOLEAN MODE) AS relevance
-> FROM test ORDER BY relevance DESC;
언급URL : https://stackoverflow.com/questions/45433160/searching-a-substring-or-word-in-mariadb
'source' 카테고리의 다른 글
Java에서는 "this"가 null이 될 수 있습니까? (0) | 2022.11.14 |
---|---|
jQuery로 포커스 요소를 얻는 방법 (0) | 2022.11.14 |
복합 인덱스는 언제 사용해야 합니까? (0) | 2022.11.14 |
Spring Boot에 실행 가능한 jar에 사용할 메인클래스를 지시하려면 어떻게 해야 하나요? (0) | 2022.11.14 |
왜 Python3에는 xrange 함수가 없습니까? (0) | 2022.11.14 |