大家。我正在尝试详细说明符合以下条件的查询:
查找出现在一组字段中的一组单词。例如,我要查找一个或两个字段中包含“足球”,“足球”和“守门员”字样的文档:“ sport_name”和“ descritpion”。
我遇到的问题是,我需要将两个字段都视为一个字段,才能获得如下结果:
{
"sport_name":"soccer",
"description": "...played with a ball... positions are goalkeeper"
}
我需要这些单词出现在任何字段中,但是所有单词都必须出现在“串联的更大字段”中。
有没有办法在查询时间内做到这一点?
谢谢!
答案 0 :(得分:0)
您可以使用edismax处理程序(defType=edismax
),设置q.op=AND
(因为必须存在所有术语)并使用qf=sport_name description
告诉Solr搜索在两个字段中都给出了术语。
您还可以使用qf=sport_name^2 description
来表示,您要权衡sport_name
字段中的匹配是描述字段中的匹配的两倍。因此,如果某项运动以ball
命名,那么与description
字段中存在相同内容的情况相比,该命中对得分的贡献更大。