假设我试图在任何字段中搜索“Douglas”。如果我这样做的话:
solr/query?q=Douglas我收到0个响应,但如果我收到了:
solr/query?q=firstname:Douglas那么我确实得到了响应,为什么会这样呢?我也尝试过:
solr/query?q=Douglas&qf=firstname我还是一无所获。如何搜索所有字段?那么我如何“提升”某些字段的相关性呢?例如,如果我搜索Douglas,那么名为Douglas的人应该会出现在他们的描述中包含“Douglas”一词的项目之前。
发布于 2014-11-10 19:07:52
你把两个概念混在一起了。
默认搜索针对一个字段。这是由df (默认字段)参数(而不是qf)定义的字段。所以,solr/query?q=Douglas&df=firstname应该是有效的。Solr示例通常将text字段设置为默认值,并使用copyField指令将其他字段复制到该字段中。这是可行的,但不允许对不同的领域使用不同的分析器。它也不允许根据找到的字段内容进行排名。
如果您想搜索具有不同权重的多个字段,则需要切换到dismax或edismax query parser。然后,使用qf参数来显示要搜索的字段。
您可以在Solr Admin UI中尝试所有这些功能。
发布于 2014-11-10 20:33:30
发布于 2014-11-12 05:25:06
要在查询时添加提升,请执行以下操作:
Q=(名字:道格拉斯)^100或(正文:道格拉斯)^50或(某个字段:道格拉斯)^25
https://stackoverflow.com/questions/26816718
复制相似问题