以位置顺序返回Elasticsearch高亮结果吗?
我目前正在使用Elasticsearch在查询中提供的突出显示功能。但是,我不太清楚的一件事是关于结果的排序方式。我希望他们order that they
appear在段落而不是重要性/得分中返回。这样一来,我就可以按照与...
原始文档中相同的顺序将它们与连接在一起(类似于Google结果)。但是,他们目前正在根据最佳匹配以某种加权顺序返回?
有没有一种方法可以完成此操作,而无需在看到突出显示结果之后在现场进行其他后处理。
我看到有"order" :
"score"一个突出显示的选项,但是似乎没有其他记录在案的选项可以更改退货顺序。(顺便说一句,我不理解默认顺序和计分顺序之间的区别)。
这是我查询中突出显示的部分。
"highlight": { "fields": {
"synopsis": {
"fragment_size": 150,
"number_of_fragments": 4
}
}
}
回答:
因此,在进行了一些尝试之后,我发现fast-vector-
highlighter会按照原始文档中出现的顺序对片段进行自然排序。为了实现这一点,我需要添加"term_vector" :
"with_positions_offsets"到大纲字段映射中。
{ "properties" : {
"synopsis" : {
"type" : "string",
"term_vector": "with_positions_offsets"
}
}
}
然后使用我的高亮查询:
{ "query": {
"match": {
"synopsis": "foo"
}
},
"highlight": {
"fields": {
"synopsis": {
"type": "fvh",
"fragment_size": 150,
"number_of_fragments": 4
}
}
}
}
注意:使用"order" :
"score"将导致排序遵循计分模式,而不一定遵循起始位置偏移顺序。我相信可以在这里找到该比较器的确切代码,这似乎是基于片段的增强,然后是其起始偏移量。
以上是 以位置顺序返回Elasticsearch高亮结果吗? 的全部内容, 来源链接: utcz.com/qa/404099.html