여러 필드에서 자동 완성을 수행했지만 다중 값 필드에서 자동 완성을 수행하지는 않았지만 게시물을 보았습니다.다중 값 필드에서 Solr4를 사용하는 자동 완성 기능
내 복수 기능이없는 입력란에 내 자동 완성 기능이 작동합니다.
제 문제는 문서가 해당 쿼리와 일치 할 때마다 복수 값 필드에서 쿼리를 실행하면 모두 해당 문서의 다중 값 필드에있는 필드가 패싯 결과에 반환됩니다.
다음은 Solr 4 Cookbook에서 제안 된 것과 유사한 내 스키마입니다.
<fieldType name="text_autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="publisherText-str" type="string" indexed="true" stored="false" multiValued="true"/>
<field name="publisherText-ac" type="text_autocomplete" indexed="true" stored="true" required="false" multiValued="true"/>
자세히 알 수 있듯이 publisherText는 다중 값 필드입니다.
/select?q=publisherText-ac:new&facet=true&facet.field=publisherText-str&facet.mincount=1&rows=0
쿼리는 "새로운"이며,이 문서의 세트를 일치 :이 같은 쿼리가 자동 완성 기능을 테스트하기 위해 실행합니다. 그러나 패싯 결과 집합에는 일치하는 각 문서에 대한 다른 publisherText 값 (다중 값 필드에 포함됨)이 포함됩니다.
업데이트 : "new"를 쿼리 할 때 "New York Times"와 "Times New Roman"이 포함되어야하지만 삽입물 문제를 해결할 필요는 없습니다. "Knewton Gazette"이 필요하지 않습니다. 결과 세트.
패싯 결과에 쿼리와 일치하는 값만 포함되도록 할 방법이 있습니까? 또는 multiValued 필드를보다 정상적으로 처리하는 완전 자동 완성 기능을 지원하는 다른 (더 좋은?) 방법이 있습니까?
감사합니다.
"원하는 방식으로 데이터를 인덱싱하여 원하는 쿼리 결과를 쿼리 할 수 있습니다."-이 질문에 대한 내용이 아닙니까? 이 문제에 대해서는 좀 더 자세한 설명이 필요합니다. 여기서 어떻게 핵심적인 도움이 될 수 있습니까? 자동 완성 결과가 중복을 반환하지 않도록 데이터를 표준화하라는 의미입니까? 또한 질문은 성능에 관한 것이 아니라 "multiValued 필드를보다 정상적으로 처리하는 자동 완성 기능"에 관한 것입니다. 자동 완성을위한 별도의 코어를 유지하는 것이 그만한 가치가 있음을 보여줘야하며 실제로는 사인이 될 수 있습니다. 이미이 솔루션보다 성능이 좋습니다. – Risadinha