2013-08-16 2 views
0

텍스트 열과 일치하는 구문이 있습니다. 내 구문에는 여러 개의 키워드가 있으며 각 키워드는 주어진 가중치와 연관되어 있습니다. 예 :개별 키워드에 대한 가중치가있는 텍스트 검색

Johnson [10] Software [5] Company [2] 

나는 PostgreSQL 전체 텍스트 검색을 사용하고 있으며 Thinking-Sphinx 또는 Solr을 사용할 수 있습니다. 이 세 가지 옵션에 각 키워드에 대해 다른 가중치로 검색 할 수있는 함수가 있습니까?

답변

1

Solr을 사용하면이 작업을 수행 할 수 있습니다.

귀하의 질의는 schema.xml에 정의 된 기본 연산자 (AND 또는 OR)가 여기에 놀이에 오는이

q=(Johnson)^10 (Software)^5 (Company)^2 

주 같을 것이다.

1

스핑크스 (그러므로 Thinking-Sphinx)에는 비슷한 기능이 없습니다.

그러나 다양한 방법으로 에뮬레이션 될 수 있지만 명확하려면 설치하는 것이 까다로울 수 있습니다. 이것이 제품을 고르는 유일한 이유라면 스핑크스를 선택하지 마십시오. 그러나 당신이 스핑크스를 고르는 다른 이유가 있다면, 그것은 당신을 위해 운동 할 수 있습니다.

0

아마 당신이 잘못된 지점에서 무게를 할당하려 할 수도 있습니다.

귀하의 질문에 (어떤 식 으로든) 쿼리 수준에서 체중을 할당 할 수 있음을 의미합니다 (Sphinx에서는 불가능 함). 나는 Solr에 익숙하지 않지만, "Software Company Johnson"이라는 질문이있을 때 Solr에서 어떤 일이 일어나는가? 그리고 더 중요한 것은 어떤 것이 카테고리이고 어떤 유형의 카테고리인지를 어떻게 동적으로 결정할 수 있는가? 나에게 훨씬 더 복잡해 보입니다.

내가 말할 수있는 스핑크스는 특히 ThinkingSphinx를 사용하는 레일스를 사용하여 데이터베이스의 여러 열에 가중치를 할당하는 데 매우 적합합니다. 이 시나리오에서는 이름, 카테고리 및 유형 필드가 있어야 할 가능성이 높습니다. 그렇지 않은 경우 제안해야합니다. 그러면 이름, 유형 및 카테고리별로 쉽게 가중치를 매길 수 있습니다. 이것은 또한 Solr에서 간단히 수행해야합니다.

0

아마도 색인 생성 중에 그것을하는 것이 더 쉽습니다.

는 사실, 당신은 당신의 문서의 단어, 당신은 지수화

동안 "요소"를 계산할 수 있습니다 알고 그래서 당신은이 요소에 의해 순위에 영향을 rank_expr 사용할 수 있습니다.

관련 문제