2013-09-27 3 views
0

URL과 같은 일부 필드는 색인화되고 저장되지만 분석되지 않도록하고 싶습니다. 필드 클래스에는 동일한 작업을 수행하는 생성자가 있습니다.lucene에서 필드가 분석되지 않도록하는 방법

Field(String name, String value, Field.Store store, Field.Index index) 

그러나이 생성자는 lucene 4 이후 사용되지 않으며 StringField 또는 TextField 객체를 사용하는 것이 좋습니다. 그러나 색인을 생성 할 필드를 지정하는 생성자가 없습니다. 그렇게 할 수 있습니까?

+0

가능한 중복 [어떻게 제어 lucene 4.0에서 필드 색인 생성] (http://stackoverflow.com/questions/18564029/how-to-control-indexing-a-field-in-lucene-4-0) – femtoRgon

답변

4

해석되지 않은 필드를 단일 토큰으로 색인화하고 저장하는 올바른 방법은 StringField입니다. 그것은 당신이 루씬의 3.X에에 유사성을 저장할지 여부를 지정할 수 등 ID 번호, URL을, 같은 원자 문자열을 처리 할 수 ​​있도록 설계되어

같은 :

new StringField("myUrl, "http://stackoverflow.com/questions/19042587/how-to-prevent-a-field-from-not-analyzing-in-lucene", Field.Store.YES) 
-1

안녕하세요 당신은 당신이 말하는 것과 완전히 맞습니다. Lucene이 제공하는 새로운 필드를 사용하면 원하는 것을 얻을 수 없습니다. 설명한대로 필드를 계속 사용하거나 IndexableField 인터페이스를 구현하여 자신의 필드를 구현할 수 있습니다. 거기에서 당신은 당신이 당신의 들판이 갖기를 원하는 행동을 결정할 수 있습니다.

+0

언제든지 뭔가가 사용되지 않을 때마다 항상 대체 문자가 있습니다. 그렇게하는 더 좋은 방법. 그래서 나는 뭔가 있어야한다고 생각합니다. 계속 사용할 수 있지만 이후 버전이 출시되면이 파일은 모두 제거되며 나중에 문제가 발생할 수 있습니다. – Hasif

+1

StringField 문서를 다시 읽었으며 기본적으로 StringField는 토큰 화되지 않았기 때문에 분석되지 않습니다. 원하는대로 인덱싱되고 단일 값으로 저장됩니다. [StringField] (http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/document/StringField.html) – Esquive

+0

자주 사용하지 않는 구성이 더 필요하다면 자신의 필드를 사용하거나 필드 유형을 계속 사용하십시오. 전에 당신이 지적했듯이. 새 버전이 출시되는 경우 자신의 필드를 구현하는 것이 더 안전합니다. – Esquive

관련 문제