2011-05-12 5 views
0

맞춤 쇼핑 카트/백엔드 시스템이있는 웹 사이트에 자동 제안 기능을 구현하고 싶습니다. 시스템은 고객이 넣을 수있는 단어와 제안 목록을 입력 할 수 있습니다. 단어의 경우 'cal'및 제안 사항의 경우 '칼로리 칼로리'와 같은 나는 6000 개의 제품을 가지고 있으며 그러한 목록을 작성하는 방법에 대해 혼란스러워합니다. "칼슘"예제를 "ca", "cal", "calc"로 슬라이스하고 제안을 제안해야합니까? 또한 "칼슘"과 같은 철자가 잘못된 단어를 어떻게 처리합니까? 이 프로세스를 자동화하는 방법이 있습니까? 제발 조언. 감사.자동 제안/자동 완성 제안 목록 작성 방법

답변

1

시작의 경우 특정 문자 수를 입력 할 때만 자동 완성 트리거를 사용하십시오. 그렇지 않으면 필요한 것보다 많은 결과가있을 수있는 a에 대한 검색을 수행하게됩니다. 데이터베이스를 사용하는 경우

일치하는 단어를

, 그들은 일반적으로 와일드 카드 일치에 대한 LIKE 비교 지원 : 당신이 전체 텍스트 인덱스를 지원하는 테이블을 원할 것입니다

SELECT `name` FROM `products` WHERE `name` LIKE 'cal%' 

주, 또는 당신이 정말로 원 성능이 좋아. 가능하면 단순한 데이터 마이닝 서버 인 별도의 서버에서 별도의 데이터베이스를 작성하고 프로덕션 서버의 제품 목록을 복제하는 것이 좋습니다. 이렇게하면 자동 완성을 위해 기본 데이터베이스의 리소스를 소모하지 않습니다.

맞춤법이 잘못된 단어 인 경우 Levenshtein distance과 같이 시도하면 두 단어의 철자가 얼마나 근접한 지 알 수 있습니다.

1

자동 제안은 Trie, Ternary 검색 트리와 같은 데이터 구조를 사용하여 구현할 수 있습니다. DB를 사용하는 것은 효율적인 솔루션과 CPU 집약적이지 않습니다.

관련 문제