在Apache Solr中设置默认搜索字段

t1rydlwq  于 2022-11-05  发布在  Solr
关注(0)|答案(2)|浏览(225)

我正在尝试通过SolrNet库实现Apache Solr搜索。到目前为止,我已经设法在我的机器上运行了Solr的一个示例,并基于特定字段进行了一些查询。

var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
   var results = solr.Query(new SolrQueryByField("id", "SP2514N"));

这一个现在工作得很好,但我想使查询与出指定一个字段,这样当我输入一个搜索关键字solr将查找到所有可用的字段,并返回一个结果.我已经找到了代码,使它在SolrNet库从here

var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
        var results = solr.Query(new SolrQuery("SP2514N"));

但是这从来没有工作,当我向下钻到底部,我发现我需要在Solr示例中设置默认搜索字段,以便Solr将搜索该字段时,没有其他选择(这是我如何理解它,我不确定这一点)。

<requestHandler name="/query" class="solr.SearchHandler" default="true">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
       <str name="df">text</str>
       <str name="df">id</str>
     </lst>
  </requestHandler>

[just添加<str name="df">id</str>这个字段作为额外的]。但这也从来没有帮助,我卡住了,谁能告诉我我怎么能在Solr中正确设置默认搜索字段?或者我做错了什么?I have Uploaded My Solrconfig file here

ijnw1ujt

ijnw1ujt1#

我不知道SolrNet库,但要为搜索创建一个默认字段,您需要在schema.xml中定义DefaultSearchField,即<defaultSearchField>FieldName</defaultSearchField>
您可以在<SOLR_HOME>\apache-solr-3.6.0\example\example-DIH\solr\testsyndrome\conf\schema.xml找到此文件
我希望这就是你要找的。

weylhg0b

weylhg0b2#

不要从SolrNet开始,使用Solr内置的Web Admin界面。在那里迭代,直到你理解了请求处理程序和参数。然后,回到SolrNet。
在您的例子中,似乎您更改了默认请求处理程序,并尝试使用df参数两次。我现在将坚持使用原始请求处理程序,以避免额外的问题。
通过使用df参数,您尝试搜索的是单个字段还是多个字段?如果是单个字段,则只保留该参数的一个值。如果是多个,则需要切换到使用eDisMax,在eDisMax中可以提供一组字段。
同样,管理界面允许您试验它,然后您可以将它添加到处理程序的默认参数中。

相关问题