2012-08-06 5 views
0

내 lucene 색인 문서에는 세 가지 필드 즉, 이름, 중간 이름 및 성이 있습니다. 따라서 검색이 이루어지면 색인의 모든 필드에서 검색을 수행해야합니다. 따라서 두 개의 별도 인덱스 (하나는 전체 컨텍스트 - 하나는 모든 인덱스, 다른 하나는 별도 필드로 연결된 문자열)를 유지하는 것입니다. 필자는 후자의 접근 방법을 사용했습니다. 즉, 별도의 필드가있는 인덱스 만 유지 관리했습니다 . 따라서 검색 텍스트가 제출되면 세 개의 별도 용어 검색어가 결합되고 결합 된 부울 검색어로 검색이 이루어집니다. 따라서 검색 텍스트가 필드 중 하나와 일치하면 검색 결과가 얻어집니다. 이제 문제는 검색 텍스트에 첫 번째 단어의 첫 번째 단어와 중간 단어의 마지막 단어 사이에 공백이있는 경우, 별도의 필드가있는 색인을 사용하여이 검색을 수행하는 방법입니다. 이 작업을 수행 할 수있는 방법이 있습니까?Lucene Indexing

답변

1

두 개의 별도 인덱스를 유지 관리 할 필요가 없습니다. 네 개의 필드와 단일 인덱스 유무 :

  • 중간 이름
  • 전체 이름 (이름이 필드의 일환으로 색인)
  • 하자

    1. 이름을 기본 검색 필드는 전체 이름이어야하며 사용자가 세부 검색 범위를 좁히려면 첫 번째/중간/성 필드에서도 쿼리를 실행할 수 있습니다.