source

마리아에서 하위 문자열 또는 단어 검색DB

manysource 2022. 11. 14. 21:47

마리아에서 하위 문자열 또는 단어 검색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