我目前正在做一个包含多重匹配和功能得分的查询。JSON的重要部分如下所示:
"function_score":{
"query":{
"query_string":{
"query":"some query",
"fields":["id","name","strippedDescription","colourSearch","sizeSearch"]
}
}
}
但是,我也想包括不一定与查询匹配但具有大于0的特定数值的结果。我认为布尔查询可以做到这一点,但是我不知道如何将布尔查询与功能分数查询。
我知道多重匹配查询只是布尔查询的简写,我可以将多重匹配查询扩展到其布尔匹配部分,但是,我不知道如何在其中进行功能评分。
有任何想法吗?顺便说一下,我的版本是1.1.0。
弄清楚了!我错过了可以在布尔查询中嵌套多字段查询的事实!我的最终解决方案如下所示:
{
"query":{
"function_score":{
"query":{
"bool":{
"should": [
{
"range": {
"allBoost": {
"gt": 0
}
}
},{
"multi_match":{
"query":"some search query",
"fields":[
"id",
"name",
"description",
"category"
]
}
}
]
}
},
"functions":[
{
"filter":{
"range": {
"allBoost": {
"gt": 0
}
}
},
"script_score":{
"script":"doc['allBoost'].value"
}
},
{
"filter":{
"range": {
"allBoost": {
"lte": 0
}
}
},
"script_score":{
"script":"_score"
}
}
],
"boost_mode": "replace"
}
}
}
问题内容: 我正在用查询查询我的elasticsearch索引。查询本身的结构与此类似 我希望能够确定所有这些查询中哪一个是与结果匹配的查询。是否有内置的elasticsearch方法允许这样做,还是我必须手动进行? 问题答案: 您可以使用命名查询,然后在结果中获得匹配的查询的名称。 然后,在结果中,您将获得一个数组,其中包含与文档匹配的查询的名称。
问题内容: 我开始与go一起工作了几个星期,(再一次)我偶然发现了一些对我来说似乎很奇怪的东西: play 我想同时分配两个变量。一个已经被声明,在更好的范围内,另一个没有被声明。 它不起作用:编译器尝试重新声明前一个变量。但是,如果在同一范围内声明此变量,则效果很好。 这是为什么? 问题答案: 您所经历的通常称为 “可变阴影” 。当您使用在内部范围内的任何变量,包括像语句和尽管缺乏支撑的,一个新
通过看到我的结果,我有点困惑如何在MatchPherage和match query中进行评分 对于匹配短语,我有如下查询 获得的reults如下 a。“信用-消费者测试文章”得分12.64 b的文件。“信用-X测试文章”得分12.64 c的文件。“Credit-XYZ测试文章”得分10.92 d的文档。“信用测试文章”得分10.22 e的文件。“Credit-Z测试文章”得分09.40的文档 前两
问题内容: 如何使用FLANN优化许多图片的SIFT功能匹配? 我有一个来自Python OpenCV文档的工作示例。但是,这是将一个图像与另一个图像进行比较,而且速度很慢。我需要它来搜索一系列图像(几千个)中匹配的特征,并且我需要它更快。 我目前的想法: 浏览所有图像并保存功能。怎么样? 将相机的图像与上述基础进行比较,然后找到正确的图像。怎么样? 给我结果,匹配图像或其他东西。 http://
问题内容: (2)和(4)有什么区别? (3)和(5)有什么区别? 为什么在(3)和(6)中给出错误的结果? 问题答案: 除4外,所有这些都依赖于运算符的优先级。 在Java中,优先于。 这意味着2实际上是“读取”的: 因此,第一个的右侧操作数是一个布尔表达式,它将两个对象引用彼此进行比较(事实上,它们在这里都是s都是无关紧要的),在这里它们是不相同的。因此,右侧操作数为boolean 。 但是由
我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与