4

当我在查询中包含一个字段时,我只能让 Solr 工作,例如:

http://localhost:8983/solr/collection1/select?q=lastname:johnson

上述查询返回大约 18 个结果。

难道不应该指定字段就可以使用 Solr (/Lucene) 吗?如:

http://localhost:8983/solr/collection1/select?q=johnson

我还尝试添加字段列表:

http://localhost:8983/solr/collection1/select?q=johnson&fl=cus_id%2Cinitials%2Clastname%2Cpostcode%2Ccity

但是所有这些查询都返回零结果。

这些是我的 schema.xml 中的字段:

<field name="cus_id" type="string" indexed="true" stored="true"/>
<field name="initials" type="text_general" indexed="true" stored="true" />
<field name="lastname" type="text_general" indexed="true" stored="true"/>
<field name="postcode" type="string" indexed="true" stored="true" />
<field name="city" type="text_general" indexed="true" stored="true"/>

我不知道还能尝试什么。有什么建议么?

4

1 回答 1

8

对于 Solr,如果未指定字段,则搜索发生在默认字段 ( df) 上。
因此,当您搜索 q=johnson 并调试查询时,您会发现它在默认字段上搜索,该字段通常是 ​​field text
您可以所有字段复制到单个字段文本并将其作为默认字段(如果不是默认字段),以便在默认字段中搜索所有搜索查询。
此外,fl列出将作为结果的一部分返回且与执行搜索的字段无关的字段。
使用 dismax,您可以检查qf参数以指定具有可变提升的多个字段。

于 2013-08-16T08:02:22.283 回答