2017-06-22 64 views
0

Solr的查询语法转换我试图查询文件Solr的,给定一个基本架构与下面的字段名,数据类型无关:从布尔表达式

我试图匹配匹配至少一个文件以下内容: occupation, name, age, gender但我想将它们放在一起

您如何将多个术语放在一起或强制文档匹配至少一个?

这似乎是失败的:+(name:Sarah age:24 occupation:doctor gender:male)

怎样把一个布尔表达式为Solr的查询语法?我找不出+-的语法和OR的默认运算符。

+0

什么样d的你想要什么?你想为'25'或'24'的'age'这样的同一领域想要多重或价值,否则你想要像'age'这样的数据是'24'或'gender'是'male'? –

+0

@ User4392892两者。男性或24(或两者) – bdeo

回答

0

不过我不明白你的要求,但你只需要查询,如:

+(age:24 OR gender:male) 

或者,如果你想要在同一领域的多个值或条件类似的数据。
即您得到的数据都是age:24age:25

+(age:24 OR age:25 OR gender:male) 

然后,您可以:

+(age:(24 25) OR gender:male) 

如果你岂不等于需求,然后让我知道。

0

如果您想让客户端尽可能简单,只需使用dismax [1]或edismax [2]查询解析器即可。

具体来说,你可以配置一个名为“QF”请求参数:

“的QF参数介绍字段的列表,每个都分配一个放大系数增加或减少在该特定领域的重要性。查询例如,下面的查询:

QF = fieldOne^2.3 fieldTwo fieldThree^0.4

分配fieldOne的2.3升压,叶fieldTwo与默认升压(因为没有升压事实或者是指定的),并且fieldThree是0.4的提升。

这些助推因素使得比赛在fieldOne更显著比fieldTwo,而这又是比fieldThree比赛更显著的比赛。”从维基

然后,你可以通过一个免费的文本查询,它会搜索你指定的字段,也给予不同的重视,每个人如果需要的话。

[1] https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html

[2] https://lucene.apache.org/solr/guide/6_6/the-extended-dismax-query-parser.html