2009-12-16 4 views
0

먼저 무엇보다 Google이 두 문장으로 작성된 방법을 알려주고 싶지 않습니다. 제가 묻는 것은 약간 다릅니다. 나는 사용자가 입력하는 텍스트 데이터로 가득 찬 데이터베이스를 가지고있다. 나중에이 데이터를 검색 할 수있는 기능도 제공합니다. 문제는 지금 간단한 텍스트 검색을 수행하고 결과를 임의의 순서로 반환한다는 것입니다. 나는 사용자가 무언가를 얼마나 자주 입력하는지에 대한 가중치에 근거하여 결과를 반환하고자합니다. 사용자가 다음에 입력 할 수 있습니다 예 :이전 사용을 기반으로 검색 결과 순위를 매기기위한 알고리즘

"foo는" "보" "밥" "밥" "밥" "보" "에서는 foo2"

상기 내용을 토대로을 데이터에서 'b'에 대한 검색은 bo와 bob을 반환해야하지만 bob이 먼저 나열되어야합니다. 사용법에 따라 가장 관련이 있습니다.

호기심, 효과적인 알고리즘으로 어떤 알고리즘을 연구해야합니까? 일반적인 웹 알고리즘을 기반으로하는 모든 도서 (이 웹에만 국한되지 않음)가 설명되어 있습니다.

+0

검색 중 ... 감사합니다. (Y) – Nakshatra

답변

0

다양한 검색 알고리즘이 있습니다.

다음은 그 중 일부에 약간의 이정표입니다 : http://en.wikipedia.org/wiki/Search_algorithm

없는 전문가 나 자신이 지역에있는, 그래서 특정 일을 권장하지 않습니다.

0

난 당신이 데이터베이스의 맥락에서이 작업을 수행 할 것입니다 방법을 알고 있지만, 여기에 대해 이동하는 방법 중 하나입니다하지 않습니다

사용하십시오 trie 각각의 고유 한 단어의 수를 저장하기 위해 얼마나 자주 사용되었다. 사용자가 입력을 시작하면 trie를 사용하여 주어진 접두어로 모든 문자열을 효율적으로 가져올 수 있습니다. 그런 다음 'counts'라는 단어를 키로 정렬 할 수 있습니다.

0

Google 검색에는 apache solr이 사용됩니다. 이 기술에서는 일반적으로 증폭을 통해 이루어집니다. 따라서 데이터를 색인화하고 매일 또는 그 후에 사용자 쿼리를 기반으로 개별 문서를 향상 시키십시오.

관련 문제