以位置顺序返回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

回到顶部