suggester를 사용하여 SOLR로 입력 헤드 자동 완성을 만들려고합니다.강조 표시가있는 SOLR suggester
검색은 사용자를 집계하는 사용자 및 그룹 이름에 대해 수행됩니다. 검색은 사용자 이름, 약력, 웹 페이지 및 기타 사항에 대해 수행됩니다. 내가 성취하고자하는 것은 일종의 "페이스 북"또는 "트위터"유사 검색입니다. 이를 위해 SOLR의 결과를 추가 데이터 (사용자 유형, 프로필 URL, 아바타 URL 등)로 풍부하게해야합니다.
사용자 및 그룹은 SOLR의 ID 필드를 가지며이 정보는 DB의 ID와 일치합니다. 나는 그것을하는 방법에 붙어있다.
현재 suggester가 작동하지만 문서에서 다른 속성을 반환하려고 시도 할 때 제안 값만 반환합니다.
<field name="groupid" type="int" indexed="true" stored="true"
required="true" multiValued="false"/>
<field name="groupusername" type="text_general" indexed="true"
stored="true" multiValued="true"/>
<field name="groupname" type="text_general" indexed="true"
stored="true" multiValued="false"/>
<field name="grouporuser" type="boolean" indexed="true"
stored="true" multiValued="false"/>
<field name="autocomplete" type="text_autocomplete"/>
<copyField source="groupusername" dest="autocomplete"/>
<copyField source="groupname" dest="autocomplete"/>
쿼리 : http://gruppu.com:8983/solr/suggest?q=: & spellcheck.q = 조 & 맞춤법 검사 = 사실 & HL =
<searchComponent class="solr.SpellCheckComponent" name="suggest">
<!-- configure the spellchecker used
for autocomplete (dictionary) -->
<lst name="spellchecker">
<str name="name">suggester_dictionary</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookupFactory</str>
<!-- The indexed field to derive suggestions from -->
<str name="field">autocomplete</str>
<!-- buildOnCommit must be set to true because
suggester keeps data in memory -->
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<requestHandler class="solr.SearchHandler" name="/suggest">
<lst name="defaults">
<!-- by default use the suggester_dictionary -->
<str name="spellcheck.dictionary">suggester_dictionary</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.onlyMorePopular">false</str>
</lst>
<lst name="invariants">
<!-- always run the Suggester for queries to this handler -->
<str name="spellcheck">true</str>
<!-- collate not needed, query if tokenized as keyword, we need only suggestions for that term -->
<str name="spellcheck.collate">false</str>
</lst>
<!-- this handler uses only the needed component :
suggest defined above -->
<arr name="components">
<str>suggest</str>
<str>highlight</str>
</arr>
</requestHandler>
및 계획 : 여기
는하여 solrconfig의 일부입니다 on & hl.fl = groupid응답 :
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
</lst>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="jo">
<int name="numFound">2</int>
<int name="startOffset">0</int>
<int name="endOffset">2</int>
<arr name="suggestion">
<str>jorge</str>
<str>jorgen</str>
</arr>
</lst>
</lst>
</lst>
</response>
내가 그룹 ID와 grouporuser 필드를하고 싶은 반환되지 ... 운이 지금까지.