2010-05-21 5 views
3

Solr 1.4에서는 단일 색인 내의 모든 검색에 어떤 유사성 클래스를 사용할 수 있습니까?다른 Solr 사용 모든 검색에 대해 유사도 algo

두 가지 유형의 검색 (키워드 및 브랜드)이 있다고 가정 해 보겠습니다. 키워드 검색을 위해 DefaultSimilarity 클래스를 사용하고 싶습니다. 그러나 브랜드 검색을 위해 CustomSimilarity 클래스를 사용하고 싶습니다.

하나의 유사성 클래스를 지정하기 위해 schema.xml을 수정했습니다. 그러나, 나는이 두 가지 유사성 클래스를 사용해야한다는 요구 사항에 도달했습니다.

여기에 대한 여러분의 생각을 기쁘게 생각합니다.

미리 감사드립니다.

+0

유사성 등급을 변경 하시겠습니까? 디폴트 similary의 구체적인 문제점은 무엇입니까? 원하는 것을 성취 할 수있는 다른 방법이있을 수도 있습니다. –

+0

안녕하세요, Mauricio, 답장을 보내 주셔서 감사합니다. 사실, 기본 유사성은 관련성에 대해 많은 부분을 차지하는 일반적인 문서 순위 지정에 충분합니다. 하지만 랭킹에 대한 우리의 요구 사항은 기본적인 점수 (즉, TF의 효과 제거)를 절충해야하는 방식으로 매우 엄격합니다. 랭킹에 영향을 미치는 부스트 값을 추가하더라도 필수 순위에 따라 실패하는 경우가 있습니다. – snickernet

답변

3

AFAIK 유사도는 스키마/인덱스 수준에서만 정의 할 수 있으며 fieldType 또는 쿼리 당 재정의 할 수 없습니다. (thisthis 참조).

그러나 다른 방법 (부스트, function queries, custom analyzer/필드 또는 정렬)을 사용하여 결과 순서를 사용자 정의 할 수 있습니다.

Solr Relevancy Cookbook 위키는 좋은 참고입니다.

+0

나는 꽤 오랫동안 함수 쿼리 (boost)를 사용 해왔다. 하지만 내가 말했듯이, 당신은 이것을 사용하여 순위를 직접 지시 할 수는 없지만 어느 시점에서 영향을 미칠 수 있습니다. – snickernet

+0

@snickernet : 주문을 직접 설정해야하는 경우 정렬을 사용하십시오. –

+0

의견을 공유해 주셔서 감사합니다. 그래, 당신 말이 맞아. 솔직히 논리를 직접 작성하는 대신 Solr/Lucene의 내장 기능 (정렬, 부스팅)을 더 잘 살펴야합니다. – snickernet

관련 문제