有没有一种方法可以在SOLR上执行查询,在那里我需要在不同字段中列出一个单词列表?

时间:2018-12-12 23:25:39

标签: solr

大家。我正在尝试详细说明符合以下条件的查询:
查找出现在一组字段中的一组单词。例如,我要查找一个或两个字段中包含“足球”,“足球”和“守门员”字样的文档:“ sport_name”和“ descritpion”。
我遇到的问题是,我需要将两个字段都视为一个字段,才能获得如下结果:

 {  
        "sport_name":"soccer",  
        "description": "...played with a ball... positions are goalkeeper"  
    }  

我需要这些单词出现在任何字段中,但是所有单词都必须出现在“串联的更大字段”中。
 有没有办法在查询时间内做到这一点?
 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用edismax处理程序(defType=edismax),设置q.op=AND(因为必须存在所有术语)并使用qf=sport_name description告诉Solr搜索在两个字段中都给出了术语。

您还可以使用qf=sport_name^2 description来表示,您要权衡sport_name字段中的匹配是描述字段中的匹配的两倍。因此,如果某项运动以ball命名,那么与description字段中存在相同内容的情况相比,该命中对得分的贡献更大。