3

次のクエリは私にとってはうまくいきます

http://[]:8983/solr/vault/select?q=VersionComments%3AWhite

バージョン コメントに White が含まれるすべてのドキュメントを返します

フィールド名を省略して、次のようにデフォルト値として設定しようとしました: solr config に次のように記述します。

<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
     will be overridden by parameters in the request
  -->
 <lst name="defaults">
   <str name="echoParams">explicit</str>
   <int name="rows">10</int>
   <str name="df">PackageName</str>
   <str name="df">Tag</str>
   <str name="df">VersionComments</str>
   <str name="df">VersionTag</str>
   <str name="df">Description</str>
   <str name="df">SKU</str>
   <str name="df">SKUDesc</str>
 </lst>

solr を再起動し、フル インポートを作成します。
それから私は使ってみます

 http://[]:8983/solr/vault/select?q=White  

(どこ

 http://[]:8983/solr/vault/select?q=VersionComments%3AWhite

まだ動作します)

しかし、私は答えとして文書を取得しません。
私は何を間違っていますか?

4

1 に答える 1

14

私の知る限り、<str name="df"></str>あなたは一度だけ宣言されるべきですrequestHandler

通常、私が行うことは、検索したいすべてのフィールドを というデフォルトの検索フィールドにコピーすることですtext

schema.xml:

<copyField source="name_t" dest="text"/>

solrconfig.xml

<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
     will be overridden by parameters in the request
-->
<lst name="defaults">
   <str name="q">*:*</str>
   <str name="echoParams">explicit</str>
   <int name="rows">10</int>
   <str name="df">text</str>
</lst>
</requestHandler>

これで十分でない場合は、次のような宣言でdismax検索を使用して、いつでも他のフィールドを検索できます。qf

http://localhost:8983/solr/vault/select/?q= White&defType=dismax&qf=PackageName+Tag+VersionComments+VersionTag+Description+SKU+SKUDesc

于 2013-07-29T16:21:47.050 に答える