我已使用来自DB的requestHandler将80000行随机文本上传到Solr。
查看核心概述,我看到这些行已更新
在模式中,我定义了所有字符串列,如下例
...
<field name="packageName" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
...
我使用
查询http://localhost:8983/solr/vault/select/?q=everyone&fl=*
虽然我知道队长存在但我得不到任何结果(因为我查询
SELECT * FROM [dbo].[Fact] where packageNAme like '%everyone%'
) 事实上,只有以下查询
http://localhost:8983/solr/vault/select/?q=*&fl=id
返回行
为什么我不使用第一个查询获取行?
感谢。
修改
在tutorial之后我使用了这个查询
http://localhost:8983/solr/products/select?q=aluminum
http://localhost:8983/solr/collection1/select/?indent=on&q=video&fl=name,id
它返回了所有答案。
答案 0 :(得分:1)
首先everyone
Solr
中没有关键字everyone
。根据您的查询keyword
看起来像%
。
其次 - 当您查询数据库时,前面和后面有http://localhost:8983/solr/vault/select?q=packageName:*everyone*
进行匹配。在Solr查询的情况下,您必须执行相同的操作。
试试这个 - packageName
。这将获得与DB相同的结果。
解释 - 在我发送给您的查询中,您将尝试将字段everyone
与schema.xml
匹配,其中name
在其之前和/或之后具有0个或更多字符。
有关详细信息,请查看here
在问题中修改后添加了信息 -
Solr附带的默认default
有一个名为q=<search phrase>
的字段,标记为name
搜索字段,这意味着name
将与{{1}}匹配}字段。您正在查看的教程使用的是{{1}}字段,因此可以获得输出。