私は約1週間solrで遊んでいます。私の問題は、ここSOまたはインターネット上のどこでも解決策を見つけることができなかったため、ハイライトに関連するまれなケースである可能性があります。
ハイライトを有効にしましたが、ほとんどすべてが正常に機能します。検索結果が表示され、ハイライトされた部分がに返され<lst name="highlighting">
ます。
問題は、テキストの強調表示された部分を実際に含む子ノードのいずれにも、それぞれの結果項目のid属性と同じであると想定されるname属性がないことです。
以下は、solradminを使用した検索から返された結果からの抜粋です。
<result name="response" numFound="121" start="0" maxScore="2.3798883">
<doc>
<float name="score">2.3798883</float>
<str name="Turn">Android Linux</str>
<str name="id">dcc190ba-143b-4fb7-b868-ef06875210fe</str>
<float name="startTime">961.98</float>
</doc>
<doc>
<float name="score">1.009701</float>
<str name="Turn">
ci sono per� degli aspetti diversi perch� Microsoft vendeva windows mentre l' Ugl regala Android che quindi la licenza Android non costa nulla
</str>
<str name="id">804df3fb-3709-4bf8-a0d0-718dc5da18f1</str>
<float name="startTime">2445.19</float>
</doc>
</result>
<lst name="highlighting">
<lst>
<arr name="Turn">
<str><span class="highlight">Android</span> Linux</str>
</arr>
</lst>
<lst>
<arr name="Turn">
<str>ci sono per degli aspetti diversi perch Microsoft vendeva windows mentre l' Ugl regala <span class="highlight">Android</span>
</str>
</arr>
</lst>
<lst>
<arr name="Turn">
<str><span class="highlight">Android</span> nd Kappa e l' ambiente che ci permette di scrivere in codice in attivo
</str>
</arr>
</lst>
</lst>
ご覧のとおり、id属性は結果ごとにあります。ノードで使用されていないだけです。
solrによって自動的に生成されるIDにuuidタイプを使用しています。
これが私のschema.xmlファイルの一部です。
<field name="id" type="uuid" indexed="true" stored="true" required="true" default="NEW"/>
<field name="startTime" type="float" indexed="true" stored="true" />
<field name="Turn" type="text_general" indexed="true" stored="true"/>
fieldType uuidは、schema.xmlファイルで次のように定義されています。
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
以下は、(solrconfig.xmlで)IDを生成する更新プロセッサーです。
<updateRequestProcessorChain name="uuid">
<processor class="solr.processor.SignatureUpdateProcessorFactory">
<bool name="enabled">true</bool>
<str name="signatureField">id</str>
<bool name="overwriteDupes">false</bool>
<str name="fields">*</str>
<str name="signatureClass">solr.processor.Lookup3Signature</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
アイテム内のname属性の値としてidがないと、結果のテキストを置き換えるなど、それ以上の処理を行うことができません。この情報で十分だと思います。それ以外の場合はお知らせください。私は今2日間これの底に到達しようとしています。
乾杯。