我目前正在使用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"
将导致排序遵循计分模式,而不一定遵循起始位置偏移顺序。我相信可以在这里找到该比较器的确切代码,这似乎是基于片段的增强,然后是其起始偏移量。
问题内容: 是否可以以预定顺序进行声明,即 选择ID 7,2,5,9和8 并以该顺序返回它们 ,仅基于ID字段? 这两个语句以相同顺序返回它们: 问题答案: 我不认为这是可能的,但是在这里找到了一个博客条目,似乎可以满足您的需求: 将给不同的结果 返回给定第二个参数的位置,因此对于上面的第一种情况,7的位置在集合中的位置1,2的位置在2,依此类推-mysql在内部得出类似 然后按的结果排序。
我使用Elastic5.4,想要查询包含多种类型文档的索引。(类型a和类型b)。下面是索引中的示例文档: 文件: 映射: 我的查询是在任何类型的任何字段中搜索所有包含“John”的文档,并突出显示找到匹配的字段。这个查询是按照弹性文档构造的。我的模式映射将ngram_analyzer配置为分析器,而不是模式中所有字符串类型字段的默认分析器。 如何在结果中返回高亮显示?
我使用了以下映射:我修改了英语分析器来使用ngram分析器,如下所示,这样我应该能够在以下情况下进行搜索:1]部分搜索和特殊字符搜索2]以获得语言分析器的优势 将我的数据索引如下:
本文向大家介绍Elasticsearch实现复合查询高亮结果功能,包括了Elasticsearch实现复合查询高亮结果功能的使用技巧和注意事项,需要的朋友参考一下 一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. 二.功能的实现 以下是全文检索的核心代码,包括我遇到的错误以及解决,包括如何对高亮失效,高亮不全等的解决. 1
问题内容: 我正在使用ElasticSearch索引文档。 我的映射是: 为了突出显示全文,我将其设置为0。 如果我执行以下类似于Lucene的字符串查询: 对于结果集中的某些文档,突出显示的全文的长度小于全文本身的长度。由于我将值设置为0和/ ,所以不会发生这种情况。 现在出现奇怪的行为:如果我仅通过执行以下操作搜索失败的元素之一: 然后一切正常。 有任何想法吗? 问题答案: 听起来像在0.14
问题内容: 简而言之,当不使用_geo_distance排序时,是否有一种方法可以返回地理距离? 更新:为澄清起见,我希望结果按随机顺序排列并包含距离。 问题答案: 是的,您可以使用脚本字段。 例如,假设您的文档具有一个名为的地理位置字段,则可以使用以下内容: (请注意,只是一个转义的单引号,所以真的是) 如果还希望返回该字段,则可以如下指定: