0

スキーマに複数の値を持つフィールドがいくつかありますが、これらのフィールドから結果を生成する用語を検索しても、結果が返されません。

たとえば、私のスキーマには、次のような多値フィールドがあります。

<field name="tag" type="text_general" indexed="true" stored="true" multiValued="true"/>

このようなクエリでタグを検索すると...

{!dismax q.op=AND}test

単一値フィールドでは "test" で結果が得られますが、複数値フィールドでは得られません。検索から返された結果をダンプして、何が保存されているかを確認します。

(matches when I search "test")
name: TEST 4
description: i match the query "test"
year: 2010
id: 61

(does not match when I search "test")
name: BEST 4
description: i do not match the query
year: 2010
id: 68
tags: (array)
  0:test
  1:test2
  2:i'm a test

検索しても同様の問題が見つからなかったので、何かを見逃しているように感じます。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

タグは検索可能なフィールドのリストに含まれていますか?
あなたが探している分野は何ですか?タグを追加することをお勧めします。

defTypeをdismaxとして使用しているので、URLでqf = tagsを渡して、BEST4という名前のドキュメントが結果とともに返されるかどうかをテストできます。

名前、説明、タグを検索するためのsolrconfig.xmlエントリの例-

<requestHandler name="dismax" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="echoParams">explicit</str>
     <str name="defType">dismax</str>
     <str name="qf">
        name description tags
     </str>
     <str name="q.alt">*:*</str>
     <str name="rows">10</str>
     <str name="fl">*,score</str>
   </lst>
</requestHandler>

URLを次のように使用します

q=test&qt=dismax
于 2011-10-10T19:46:31.440 に答える