我正在使用solr 4.10。我必须根据字段提升和文档分数来更改文档的相关性。为此,我已经知道我应该使用函数查询。以下是架构
中的boost字段的语法<field name="boost" type="float" stored="true" indexed="false" default="1.0"/>
我的第一个问题是,函数查询只能用于存储的字段吗?
当我尝试使用上述架构时,如下面的查询
http://localhost:8983/solr/select?q=bank&df=keywords&fl=id&sort=pow(score,%20boost)%20asc
有一些错误,如
sort param could not be parsed as a query, and is not a field that exists in the index:
然后我改变了架构,如
<field name="boost" type="float" stored="true" indexed="true" default="1.0"/>
然后上面的问题消失了但是查询出现了一个新的错误
http://localhost:8983/solr/select?q=bank&df=keywords&fl=id,pow(score,%20boost)
出现以下错误
<lst name="error">
<str name="msg">undefined field: "score"</str>
<int name="code">400</int>
</lst>
我哪里错了? 我是否正确更改boost字段的属性?
答案 0 :(得分:0)
我建议使用提升功能并按分数排序(默认=不需要订单参数)。
bf=linear(boost,100,0)
您可以使用其他功能。这取决于你的用例。 只需查看solr docs for function queries。