2011-11-08 5 views
0

I는 A와 결합 (가장 중요한에서 최소로)병합 검색 결과 알고리즘

  1. 결과를 다음과 같이 I의 결과에 우선 순위를 부여 2 개 메인 캐릭터 A 및 B 검색해야 검색 창을 구현하고 B
  2. A에 대한 유일한
  3. 결과 나는 "이집트"+ "피라미드" 를 검색 할 경우에만

그래서 예를 들어, 내가 처음으로 resu을 원하는 B에 대한 결과 "이집트 피라미드"와 같은 것, 일반적으로 "피라미드"에 대한 것, 기하학적 모양 등으로 이어지는 것, 그리고 나서 "이집트"에 대한 결과가 나온다.

나는 Google과 같은 여러 가지 검색 API를 시도하고있다. Bing, 현재 내가하는 일은 결과 셋 X를 얻으려면 먼저 검색하고 B는 양수리스트를 얻기 위해서만 검색 한 다음 A는 음의리스트를 얻기 위해서만 검색한다는 것입니다. 결과를 X로 채 웁니다. 부정적 목록에 존재한다면 보너스를주고, 긍정적 인 목록에 존재한다면 보너스를주고, 마지막에는 긍정적 인 목록에 남겨진 것을 X에 더합니다.

충분히 좋은, 누군가가이 간단한 알고리즘이나 전혀 다른 아이디어에 추가 할 수 있는지 궁금 해서요

+0

찾아보기 http://stackoverflow.com/questions/4515099/text-indexing-algorithm/4515232#4515232 – Mikos

답변

0

이와 같은 작업에는 "세트"라고하는 것을 사용해야합니다. http://en.wikipedia.org/wiki/Set_%28computer_science%29

"이집트"+ "피라미드"를 검색하는 경우 각 개별 검색어에 대해 '설정'을 만드십시오. 가장 중요한 결과는 세트의 '교차점'("이집트"와 "피라미드"세트 모두)에서의 결과입니다.

더 낮은 우선 순위 결과는 우리가 세트의 '상대적 보완 물'이라고 부르는 것입니다. B에서 A에 없었던 모든 것을 원하는 척하십시오. 이것을 B에서 A의 상대적 보완이라고 부릅니다.

대부분의 프로그래밍 언어에는 최적화 된 최적화 세트를 구현하는 라이브러리/패키지가 있습니다.