2012-02-17 5 views
4

꽤 많은 동적 필드를 사용하는 Solr 인덱스가 있습니다. Solr을 사용하여 색인을 생성하는 데이터의 양을 줄이기 위해 최근 코드를 변경하여 사용중인 동적 필드의 수를 크게 줄였습니다.Solr 1.4 인덱스에서 빈 동적 필드 제거

데이터를 다시 색인화했으며 이전 스키마의 문서 수 (관리자 스키마 브라우저에 표시된대로)가 0으로 떨어졌습니다. 그러나 필드가 여전히 존재하는 이유에 대해서는 혼란 스럽습니다. 최적화를 완료하고 서버를 다시 시작했지만이 필드를 사라지게하는 방법이 있는지 여부에 대한 정보는 찾을 수 없습니다.

인덱스를 처음부터 만들지 않는 한이 필드가 붙어 있습니까? 우리는 분야 (약 200-> 30)의 현저한 감소에 대해 이야기하고 있으며, 나는 주변에 떠 다니는 성능 영향에 대해 걱정하고 있습니다.

저는 Solr 1.4를 사용하고 있습니다.

편집 : 동적 필드 정의가 schema.xml에 여전히 존재합니다. 왜냐하면 나는 여전히 몇몇 경우에이를 사용하고 있기 때문입니다. 그 (것)들에 기초를 두는 분야의 수는 현저하게 감소되었다이다.

편집 :

이러한 필드는 저장되지 않으며 인덱싱 만됩니다. 그래서 나는 반환 된 문서를 검사하여 그것들을 볼 수는 없지만, 나는 그것들을 치부 할 수있다. 여기

은 ... 나는 아직도 사용하고있는 필드를 쿼리 내 결과입니다

검색어 :

/?q=*:*&facet=on&facet.field=books_isbn_10_s_exact 

결과 : 여기

<lst name="books_isbn_10_s_exact"> 
    <int name="1010102457">2</int> 
    <int name="1110011010">2</int> 
    <int name="1110011013">2</int> 
    ... 

한 내 결과입니다 빈 것 중 ...

쿼리 :

/?q=*:*&facet=on&facet.field=mobiles_infrared_s_exact 

결과 : 예 mobiles_infrared_s_exact 약 100 (

<dynamicField name="*_s_exact" type="string" indexed="true" stored="false" termVectors="true" omitNorms="true" multiValued="false" /> 

내가 이전 필드를보고 있어요 유일한 장소 :

<lst name="mobiles_infrared_s_exact"/> 

두 필드 내의 schema.xml이 필드 정의를 사용하는 기타)는/admin /에있는 Solr의 스키마 브라우저에 있습니다. 어디에서 볼 수 있습니까 모두 대부분의 의사 수는 0인데도 사용했던 동적 필드가 있습니다.

나는 스키마에서 제거 할 수 있는지 알아 내려고하고 있습니다. 브라우저, 그리고 내가 10m 문서의 색인을 가지고 있다는 사실을 감안할 때 성능상의 함축적 의미가 있는지 여부에 대한 정보를 제공합니다.

/?q=mobiles_infrared_s_exact:xyzzy 

당신이 제로 문서를 반환받을 수 있나요 또는 에러가 발생합니까 : 당신은 같은 것을 할 때

+0

경우에 따라 스키마에서 동적 필드 선언을 제거 했습니까? –

+0

나는 아직 필드의 일부 인스턴스를 필요로하지만, 대부분은 그렇지 않다. 나는 명확하게하기 위해 질문을 갱신 할 것이다. –

+0

그럼 이해가 안됩니다 ...이 원치 않는 들판을 어디에서 볼 수 있습니까? –

답변

0

어떻게됩니까?

0

여러 번의 솔라리스 마이그레이션 후에 여러 개의 solr 코어에 대해이를 감지했습니다.당신은 같은 루씬 데이터에서 직접 당겨을 자동화 할 수 있습니다 :

/solr/your_core/admin/luke?numTerms=0&wt=json

[ 
// ... 
fields: { 
_version_: { 
    type: "long", 
    schema: "I-S-----OF------", 
    index: "-TS-------------", 
    docs: 761997 
}, 
abstract_display: { 
    type: "string", 
    schema: "--S-M----------l", 
    dynamicBase: "*_display" 
}, 
abstract_t: { 
    type: "text", 
    schema: "ITS-M-----------", 
    dynamicBase: "*_t" 
} 
//... 
}] 

그리고 제로 docs 수의 존재에 의해 fields를 필터링 할 수 있습니다. 스키마 브라우저에서 제거하는 방법은 새로운 솔라 설치로 마이그레이션하거나 처음부터 코어를 재 구축 할 때만 가능했습니다. 다른 방법이있을 수 있지만 Solr이 조작하도록 설정 한 것은 아닙니다. 아마 흔적을 내부 인공물이라고 생각할 것입니다.

사실 이것은 solr 질문보다 solr 스키마 브라우저 질문에 더 가깝습니다.