2010-01-25 4 views
1

텍스트의 multiValued 필드 유형이 있고 그 값에 [cat, dog, green, blue] 값을 넣으면. 개가 해당 필드에 대해 쿼리를 실행할 때 그 multiValued 필드의 첫 번째 요소 위치에 있었던 것을 알 수있는 방법이 있습니까?SOLR 다중 값 필드 유형에서 히트를 생성 한 값을 결정합니다.

가정 : 클라이언트는 쿼리되는 필드의 필드 형식이 어떤 것인지 미리 알고 있지 않습니다. (즉, Solr은 응답을 제공해야하며 클라이언트는 SOLR이 결과와 쿼리를 어떻게 일치 시켰는지 알 수 없으므로 반환 문서를 처리 할 수 ​​없습니다.

공개 : solr-user 목록에 게시 했으므로 아무런 견인차가 없어서 지금 여기에 게시합니다.

+1

multiValued 필드의 특정 위치 만 일치시키는 이유를 이해할 수 없습니다 ... –

+0

http : // old .nabble.com/가치 - 생산 - 가치 - 생산 - 다중 가치 필드 유형 - td27281182.html –

+0

@Mauricio - 나는 특정 위치에만 일치하고 싶지 않아, 나는 어떤 위치를 알고 싶다 일치. – harschware

답변

3

현재 Solr에는 multiValue 필드에 값의 위치를 ​​알려주는 기본 기능이 없습니다.

+0

(+1) 이것이 진정한 답변 일 수 있습니까? 쿼리 및 인덱스 분석기를 통해 필드를 실행하거나 클라이언트 측 프로세스로 확장 버전을 실행할 수 있습니까? 핵심은 클라이언트가 서버를 쿼리하는 것과 동일한 히트를 생성 할 수 있다는 것입니다. – harschware

+0

죄송합니다. +1하는 것을 잊었습니다. – harschware

0

Lucene API는 이것을 허용하지만 Solr이 즉시 사용하는지 확실하지 않습니다. Lucene에서는 IndexReader.termPositions (Term term) 메서드를 사용할 수 있습니다.

1

잘하면 질문을 잘 이해합니다. 당신은 예를 들어, 값에 직접 인덱스를 추가 할 수

: 당신이 필드 인덱스 또는 값을 얻고 싶다면

못생긴 해결 방법은 상점 "1, 자동차", "2, 테스트"등등. 그런 다음 강조 표시를 사용하십시오. 반환 된 필드를 읽을 때 세미콜론 앞에있는 텍스트를 건너 뛰기 만하면됩니다.

하지만 당신은 하나 개의 유형을 조회 할 경우 :

당신은 다중 접근을 방지하고 단순히 ITEM_1를 통해 item_i 및 쿼리로 저장할 수 있습니다. 스키마 파일에서 copyField 지시문을 사용해야하는 유형에 관계없이 모든 항목에 대해 쿼리하려면

관련 문제