下面是schema.xml
<field indexed="true" multiValued="false" name="name"type="StrField"/>
这是我用来搜索的URL
/solr/mycore/select?q=name:John Smith&fl=\*&wt=json&indent=true
下面是错误:
Status 400
msg:no field name specified in query and no default specified via 'df' param
但是,我可以使用“name:John*”来获取所有以John开头的名称。我知道这与令牌化有关,但不确定我需要改变什么。名字和姓氏之间的空格导致精确匹配出现问题。StrField
是“字符串”的一个具体实现,所以根据我的理解,这不是问题所在
任何帮助都将不胜感激
1条答案
按热度按时间dfty9e191#
问题是您在URL中包含了一个空格字符(``)。
您需要使用
%20
对它进行编码以进行HTTP API访问,因此它应该看起来像:如果您是ApacheSolr的新手,我建议您尝试使用SolrAdmin UI执行搜索,以熟悉它的工作原理。干杯!