2013-09-03 2 views
4

저는 지난 3 년 동안 루크를 일 년에 네 번 같이 사용했습니다. 나는 그것을 필요로 할 때만 깰 수있다. 필자가 이해하지 못했던 한 가지 개념은 특정 필드의 값만 표시되는 이유입니다. 이 "빈"필드에 예상 값을 쿼리하고 예상되는 결과를 얻을 수 있지만 Luke는이를 표시하지 않습니다. 나는 근본적이고 명백한 무언가를 놓치고 있다고 생각하지만 그것은 나에게 그렇게 명백하지 않다.Luke 필드 값은 어디에 있습니까?

예 검색 탭 :

enter image description here

예제 문서 탭 :

enter image description here

답변

2

이 프로그램이 루씬 문서를 생성,이 필드의 값을 저장할지 여부를 루씬을 알 수있다 아닙니다. 예를 들어 StringField 생성자에 대한 stored 인수를 참조하십시오. 값을 저장하지 않으면 검색 할 수 있지만 검색에서 필요하지 않으며 사용되지 않으므로 값의 원래 바이트는 색인에 저장되지 않습니다.

일반적인 패턴 (예 : http://www.elasticsearch.org/)은 원래 JSON을 a single field에 저장하고 실제로 색인 된 필드를 저장하지 않는 것입니다. 그런 식으로 검색된 데이터로 작업하는 응용 프로그램은 네이티브 데이터 형식을 사용할 수 있으며 Lucene 및 키 - 값 평문 문서를 인식하지 않아도됩니다.

+0

그러면 우리의 모든 인덱싱 코드에서 Field.Store.NO가 모두 설명됩니다. 감사. – Dzejms

+3

@Dzejms 문서 탭에서 "재구성 및 편집"버튼을 누르십시오. Luke는 색인에서 저장되지 않은 필드를 재구성하려고 시도합니다. 그것은 필연적으로 최선의 노력이지만 색인에 무엇이 있는지를 더 분명하게 보는데 도움이 될 수 있습니다. – femtoRgon