我正在尝试实现 Apache Solr搜索 SolrNet库。到目前为止,我已经成功地在我的机器上运行了一个 Solr 实例,并根据特定字段进行了一些查询。
我的代码看起来像这样
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
var results = solr.Query(new SolrQueryByField("id", "SP2514N"));
这个现在工作正常,但我想在不指定字段的情况下进行查询,这样当我输入搜索关键字时,solr 将查看所有可用字段并返回结果。我找到了代码在来自 here 的 SolrNet 库中
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
var results = solr.Query(new SolrQuery("SP2514N"));
但这从来没有奏效,当我深入到底部时,我发现我需要在 Solr 实例中设置默认搜索字段,以便 Solr 在没有选择其他任何内容时搜索该字段(这是我的理解我不确定这个)。
所以我去设置 Solr 中的默认字段,我拿了 Solrconfig.XML 并像这样编辑它
<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>
[刚刚添加
<str name="df">id</str>
这个字段作为额外的]。但这也从来没有帮助过我被卡住了,谁能告诉我如何在 Solr 中正确设置默认搜索字段?或者我做错了什么?I have Uploaded My Solrconfig file here
最佳答案
我不知道 SolrNet 库,但要为搜索设置默认字段,您需要在 schema.xml 中定义 DefaultSearchField,即 <defaultSearchField>FieldName</defaultSearchField>
.
你可以找到这个文件@ <SOLR_HOME>\apache-solr-3.6.0\example\example-DIH\solr\testsyndrome\conf\schema.xml
我希望这就是你正在寻找的。
关于apache - 在 Apache Solr 中设置默认搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263663/