2013-09-01 3 views
5

Lucene 버전 3.9가 나오기 전까지는 FIELD.INDEX.NO 또는 FIELD.INDEX.ANALYZED 등을 사용하여 필드를 인덱싱하거나 인덱싱하지 않도록 지정할 수있었습니다. 그러나 lucene 4.0에서는 사용 가능한 생성자를 정의 할 수 있습니다. 이 버전에서 색인 생성을 어떻게 제어합니까?제어 방법 lucene에서 필드 인덱싱 4.0

"name"필드를 인덱스에 저장하고 싶지만 색인을 생성하지 않으려면 어떻게해야합니까? lucene 4.0에서 어떻게 할 수 있습니까?

답변

13

인수는 Field.Index 인수를 사용할 수 있지만 4.0에서 사용되지 않으므로 사용하지 않아야합니다. 대신, 서브 클래스가 Field인데 필드가 색인되는 f}을 제어해야합니다.

  • StringField은 표준 분석되지 않은 색인 필드입니다. 인덱싱 된 필드는 단일 토큰입니다. 식별자와 같은 적절한 항목으로 정확한 일치 항목 만 검색하면됩니다.

  • TextField은 텍스트 콘텐츠에 대해 분석 된 표준 필드 (물론 인덱스 된 필드)입니다. 전체 텍스트 검색에 적합한 선택입니다.

  • StoredField은 전혀 색인이 생성되지 않으므로 검색 할 수없는 저장된 필드입니다. StoredField 제외

이 각각 3.6 루씬 유사한 생성자 인수로서 Field.Store 값을 전달할 수있다.

이 변경에 대한 자세한 내용은, 특히 섹션 제목의 Lucene Migration Guide에서 살펴 : "별도 IndexableFieldType을 필드 인스턴스에서"는 답변을

+0

감사합니다. 도움이되었다. 우리가 할 수있는 또 하나의 일은 새로운 FieldType을 만들고 사용 가능한 메소드 인 setIndexed(), setStored() 등을 사용하여 요구 사항을 설정하는 것입니다. 그리고 나서이 fieldtype 객체를 필드 생성자에 전달할 수 있습니다. –

관련 문제