2013-07-09 2 views
1

MySQL 데이터베이스에 850,000 개의 항목 집합이 있습니다. 일부 항목은 매우 유사합니다.유사성별로 행 그룹화

Foobar Lorem 
Foobar Ipsum 
Foobar Dolor 

유사 항목 (예 : 4 자 이상)으로 모든 항목을 그룹화하려면 어떻게해야합니까? LIKE 연산자로 특정 문자열을 쿼리 할 수 ​​없습니다. 가능한 모든 유사한 항목을 알지 못하기 때문에 발생합니다.

몇 가지 흥미로운 접근법 (예 : Levenshtein distance)을 찾았지만 모든 기능을 살펴 보려면 적어도 하나의 매개 변수가 필요합니다.

제안 사항?

/업데이트

문자열의 시작과 유사 할 때 충분한입니다

+0

난 당신이 매개 변수를 취하지 방법을 발견하지 않는 이유는 가능성은 기하 급수적으로 –

+1

을 성장할 것를 찾는 일없이 당신은 [클러스터링 알고리즘 (HTTP로 볼 수 있다고 생각 : // jonisalonen .com/2012/k-means-clustering-in-mysql /). 'k-means'에 대해서 당신은 아마 무작위로 한 단어를 중심으로 골라 내고 levenshtein 거리를 사용하여 그들을 묶을 수 있습니다. – David

+2

'GROUP BY SUBSTRING (col, 1, 6)'은 처음부터 그룹으로 묶을 것이고, 필요한 경우 다듬을 것입니다. 또는 첫 번째'' '문자로 가십시오. –

답변