2011-02-16 2 views
1

Lucene으로 색인을 생성하는 문서가 있습니다. 이 문서는 기본적으로 제목 (본문)과 본문 (본문)이 있습니다. 현재 Lucene Document에서 색인을 생성하고 있는데, 다른 필드 사이에는 기본적으로 title+" "+body 인 단일 검색 가능 필드가 있습니다. 이런 방식으로 제목이나 본문에 나오는 내용을 검색하면 해당 문서를 찾을 수 있습니다.Lucene에서 문서 색인을 생성 할 때 특정 용어 (예 : 표제)의 중요도가 높아짐

그러나 이제 제목에서 일치하는 것이 문서가 본문의 일치보다 "관련성이 높아야하는"새로운 요구 사항을 알게되었습니다. 따라서 "소프트웨어 디자인"이라는 제목의 문서가 있고 사용자가 "소프트웨어 디자인"을 검색하면 해당 문서는 소프트웨어 디자인을 많이 언급하는 문서보다 검색 결과에서 상위에 위치해야합니다 몸에.

이 요구 사항을 구현하는 방법을 알지 못합니다. 예 : Google 문서의 특정 부분을 "관련성이 높음"(예 : <h1> 태그 내의 텍스트)으로 취급하므로 여기있는 모든 사람들은 Lucene이 비슷한 것을 지원한다고 가정합니다.

그러나

,

  • Javadoc for the Document class 명확 필드, 어떤 부분이 다른 부분에 비해 "더 중요"하다 즉하지 구조화 된 텍스트를 텍스트를 포함하는 것을 말한다.
  • blog post은 "Lucene을 사용하면 문서에서 개별 용어의 가중치를 높이거나 낮추는 것이 불가능합니다."

나는 어디에서 봐야할지 모르겠다. 너는 무엇을 제안 하겠는가?

이 아닌이라는 특정 정보 (예 : Lucene 문서 링크)도 도움이 될 것입니다. 그렇다면 더 이상 시간을 보내지 않아도됩니다. (이 소프트웨어는 이미 Lucene으로 작성되었으므로 지금 다시 쓰지는 않을 것입니다. Lucene이 지원하지 않으면 아무 것도 (내 상사) 할 수있는 것이 없습니다.)

+0

난 당신이 밀어 필드되지 않은 용어에 대해 얘기하고 생각 - 참조가

title:apache^20 body:apache 

같은 전자 런타임 쿼리가 될 것입니다. – Xodarap

답변

3

필드, 제목과 본문 및 색인 부스트 '제목'필드 동안 :

title.setBoost(float) 

here

+0

답변 감사합니다. 현재 검색 할 때 새로운 QueryParser (..., title-and-body-field ", ..). parse (queryText)'를 사용합니다. 두 필드가있는 문서를 어떻게 쿼리합니까? 두 필드에 대해 쿼리를 두 번 구문 분석 한 다음 두 결과 쿼리에서 'BooleanQuery'를 만듭니 까? –

+0

@Adrian Smith : [MultiFieldQueryParser] (http://lucene.apache.org/java/3_0_1/api/core/org/apache/lucene/queryParser/MultiFieldQueryParser.html)를 사용하십시오. – Xodarap

관련 문제