布尔表达式的Solr查询语法转换
我正在尝试查询solr中的文档,给定一个具有以下字段名、数据类型无关的基本模式: 我正在尝试匹配至少符合以下条件之一的文档:布尔表达式的Solr查询语法转换,solr,lucene,Solr,Lucene,我正在尝试查询solr中的文档,给定一个具有以下字段名、数据类型无关的基本模式: 我正在尝试匹配至少符合以下条件之一的文档: 职业、姓名、年龄、性别但我想把它们放在一起 如何将多个术语组合在一起,并强制文档至少匹配一个术语 这似乎是失败的:+(姓名:莎拉年龄:24职业:医生性别:男性) 如何将布尔表达式转换为solr查询语法?我无法理解+和-的语法以及OR的默认运算符 我仍然不了解您的要求,但您只需要查询如下内容: +(age:24 OR gender:male) 或者,如果您希望同一字段中多
职业、姓名、年龄、性别
但我想把它们放在一起
如何将多个术语组合在一起,并强制文档至少匹配一个术语
这似乎是失败的:+(姓名:莎拉年龄:24职业:医生性别:男性)
如何将布尔表达式转换为solr查询语法?我无法理解
+
和-
的语法以及OR的默认运算符 我仍然不了解您的要求,但您只需要查询如下内容:
+(age:24 OR gender:male)
或者,如果您希望同一字段中多个值的数据具有或类似条件。i、 e.您可以同时获得
年龄:24
和年龄:25
的数据
+(age:24 OR age:25 OR gender:male)
然后你可以:
+(age:(24 25) OR gender:male)
如果这不是您的要求,请告诉我。如果您想让客户端尽可能简单,只需使用dismax[1]或eDiscoveryMax[2]查询解析器即可 具体来说,您可以配置一个名为“qf”的请求参数: “qf参数引入一个字段列表,每个字段都分配了一个提升因子,以增加或减少该字段在查询中的重要性。例如,以下查询: qf=fieldOne^2.3 fieldTwo fieldThree^0.4 为fieldOne指定2.3的增压,为FieldII保留默认增压(因为未指定增压系数),为fieldThree指定0.4的增压 这些促进因素使得fieldOne中的匹配比fieldTwo中的匹配重要得多,fieldTwo中的匹配又比fieldTwo中的匹配重要得多 然后,您只需传递一个自由文本查询,它将在您指定的字段中进行搜索,如果需要,每个字段的重要性也会有所不同 [1]
[2] 您需要什么样的数据?您是否希望相同字段(如
25的age
或24
的age
或age
是24'或gender`是male
)有多个或多个值?@User4392892。男性或24岁(或两者兼有)