내가 PostgreSQL을에 전체 텍스트 검색을 사용하려고 해요 :postgresql의 전체 텍스트 검색에서 비슷한 단어를 찾는 방법?
select *
from entertainement
where to_tsvector('simple', name) @@ to_tsquery('simple', 'word_to_search:*')
이 쿼리는 잘 작동하고 나는 내가 그것을 찾을 수없는 단어를 입력 일부 웹 사이트에서 발견 display.However 원하는 걸 줄 나에게 No result found for 'word_to_search'
를 보여주고, 나에게 그것에 유사한 어떤 단어에 다른 약간의 명제를 줘라. 나는 단어 activityng
을 넣어 예를 들어 나는
No result found for activityng
있어하지만 나에게 말
activity
을 포함하는 몇 가지 제안을 제공합니다. 나는 단어
activityns
을 넣어 그러나 때 나는 가지고 :
No result found for activityns
그러나 나는 단어 activities
을 포함하는 몇 가지 제안을 얻었다. 나는 활동이 activity
보다 유사하고 activities
이기 때문에 그것의 논리를 이해하지 못했습니다. 나는 pg_trgm
의 similarity
를 사용하여이 단어의 상사 성을 알고 노력하고 내가 가지고 :
select similarity('activity','activityns');
similarity: 0,6666667
select similarity('activities','activityns');
similarity: 0,4666667
단어 사이의 유사성을 감지 할 수있는 다른 솔루션 거기에 더 정확한 결과를 얻을 수?
너 무슨 뜻이야? 그러나 일부 웹 사이트에서 'activityng'을 입력하면 단어가 'activity'가 아니라 'activity'가 아니라는 단어를 제안하고 'activityns'를 입력하면 단어가 'activities'가 아니라 ' 활동 '. ** to_tsvector ** 및 ** to_tsquery **를 사용하면 유사성 문제를 해결할 수 없습니다. pg_trgm을 사용하여 입력 한 단어의 유사성과 웹 사이트의 명제를 얻으려고 시도했으며 논리가 무엇인지 밝혀 냈습니다. 따라서 단어의 유사성을 찾는 해결책이 있는지를 알고 싶습니다. –
당신은 그 사이트가 포스트그레스를 사용한다고 생각하게합니까? (그리고 예 - pg_trgm이라고 부르는 상자 포스트 그레스 솔루션의 가장 좋은 점은 유사 함) –
단어의 제안은 postgresql 전체 텍스트 검색의 기능처럼 보입니다. –