[SQL] 바로 단어를 검색 MYSQL | 철자 오류를 수정
SQL바로 단어를 검색 MYSQL | 철자 오류를 수정
내가 좋아하는 단어의 목록을 포함하는 테이블 사전을 가지고 :
ID|word
---------
1|hello
2|google
3|similar
...
그래서 누군가가 같은 텍스트를 쓴다면 원하는
"안녕하세요 구글 비슷한 엔진을 찾고 있어요."
지금은 그렇지 않은 경우가해야,이 데이터베이스에 존재하는 경우 모든 단어를 확인하려면 나에게 단어에 대한 유사한 단어를 얻을. 예를 들어 : 헬기 = 안녕하세요, simlar = 유사 gogle = 구글. 글쎄, 난 맞춤법 오류를 수정합니다. 내 데이터베이스에서 나는 모든 영어 단어의 전체 사전을 가지고있다. 나는 나에게 도움이 될만한 어떤 MySQL의 기능을 찾을 수 coudn't. LIKE 내 상황에서 helpfull 없습니다.
해결법
-
==============================
1.이 당신이 원하는 원하는 대략 않는 기능이지만, 집약적이고 쿼리 속도가 느려집니다. 당신은 당신의 상황에서 사용할 수 있습니다, 내가 전에 그것을 사용하고 있습니다. 그것은 Levenshtein라고. 당신은 여기에서 그것을 얻을 수있는 방법 MySQL의에서 levenshtein 기능을 추가?
이 당신이 원하는 원하는 대략 않는 기능이지만, 집약적이고 쿼리 속도가 느려집니다. 당신은 당신의 상황에서 사용할 수 있습니다, 내가 전에 그것을 사용하고 있습니다. 그것은 Levenshtein라고. 당신은 여기에서 그것을 얻을 수있는 방법 MySQL의에서 levenshtein 기능을 추가?
-
==============================
2.당신은 음성 학적으로 비교 SOUNDEX () 함수를 사용할 수 있습니다
당신은 음성 학적으로 비교 SOUNDEX () 함수를 사용할 수 있습니다
쿼리는 뭔가를해야한다 :
select * from table where soundex(word) like soundex('helo');
이것은 당신에게 안녕하세요 행을 반환합니다
-
==============================
3.당신이하고 싶은 퍼지 검색이라고합니다. 여기 문서화 MySQL의에서 SOUNDEX 함수를 사용할 수 있습니다 :
당신이하고 싶은 퍼지 검색이라고합니다. 여기 문서화 MySQL의에서 SOUNDEX 함수를 사용할 수 있습니다 :
http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_soundex
당신은 같을 것이다 쿼리 :
사전 SELECT * FROM 곳 SOUNDEX (워드) = SOUNDEX (: yourSearchTerm)
yourSearchTerm 매개 변수 값 : ... 검색어가 결합된다.
다음 단계는 구현와 MySQL의 Levenshtein 기능의 사용을 시도하는 것입니다. 하나는 여기에 설명되어 있습니다 :
http://www.artfulsoftware.com/infotree/qrytip.php?id=552
당신은 또한이 기본적으로 제공하는 탄성 검색으로 전체 텍스트 검색을 목표로하는 데이터베이스로 찾고 고려해 볼 수 있습니다 :
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html
from https://stackoverflow.com/questions/35212058/mysql-search-for-right-words-fixing-spelling-errors by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 하나 개의 레코드로 쿼리를 제한하면 성능을 향상합니까 (0) | 2020.07.09 |
---|---|
[SQL] GROUP BY 후 연결하여 하나의 필드 (0) | 2020.07.09 |
[SQL] 데이터는 SQL 테이블에 영구적으로 저장되지 (0) | 2020.07.09 |
[SQL] SQL은 - 주로 주문 순차적으로 직렬 INT 값 누락 찾기 (0) | 2020.07.09 |
[SQL] 열이 시작하거나 문자로 끝날 수있을 때 부호로 캐스트 수치 MySQL의 정렬 VARCHAR 열을 사용하여 (0) | 2020.07.09 |