我对solr文件中的这些词感到困惑:
https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser
在Solr 1.3之前,标准请求处理程序称为标准 查询解析器作为默认查询解析器。在自Solr 1.3以来的版本中, 标准请求处理程序将DisMax查询解析器称为 默认查询解析器。
https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser
q参数不支持通配符,例如*。
所以我下载solr 4.7.2,解压缩
检查我有
<requestHandler name="/select" class="solr.SearchHandler">
默认情况下,在<{1}}中。
然后,我索引这个文件
solr-4.7.2/example/solr/collection1/conf/solrconfig.xml
但是
<?xml version="1.0"?>
<add>
<doc boost="1.0">
<field name="id">item1</field>
</doc>
</add>
找到文档,
http://localhost:8983/solr/collection1/select?q=id:it*
找不到项目
所以看起来标准查询解析器是默认值而不是dismax查询解析器?
答案 0 :(得分:1)
默认值在solrconfig.xml文件中定义。 4.7.2附带的默认solrconfig.xml文件具有以下条目:
edismax
这意味着默认值是扩展的dismax查询解析器。 http://wiki.apache.org/solr/ExtendedDisMax
答案 1 :(得分:0)
我认为标准查询解析器是默认值而不是dismax查询解析器。 但我们可以为任何solr(ver 4)请求处理程序指定默认查询解析器。
下面是solrConfig.xml文件中的一些配置条目
<requestHandler name="/query" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">20</int>
<str name="defType">edismax</str>
<str name="wt">json</str>
</lst>
</requestHandler>
答案 2 :(得分:0)
我无法在您的初始问题中添加评论,但nagendra基本上是对的,尽管您使用的是/query
而不是他在其中定义为/select
的{{1}}他来自requestHandler
的细分。
您在solrconfig.xml
之前的网址中也缺少&
,因此它将被视为搜索字符串的一部分,而不是单独的参数。
defType
不会返回结果,因为它将使用不支持http://localhost:8983/solr/collection1/select?q=id:it*&defType=dismax
的dismax解析器,但是
*
将给出结果,而不是使用http://localhost:8983/solr/collection1/select?q=id:it*&defType=edismax
。
截至撰写本文时,您所引用的页面已替换为以下内容,该内容表示标准查询解析器是默认查询器,因此它可能已还原?
https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html