当前位置: 首页 > 面试题库 >

ElasticSearch获取突出显示的片段的偏移量

令狐灿
2023-03-14
问题内容

是否可以获得每个突出显示的片段的字符位置?我需要将突出显示的文本与源文档匹配,并且使用字符位置将使其成为可能。

例如:

curl "localhost:9200/twitter/tweet/_search?pretty=true" -d '{
    "query": {
        "query_string": {
            "query": "foo"
        }
    },
    "highlight": {
        "fields": {
            "message": {"number_of_fragments": 20}
        }
    }    
}'

返回此突出显示:

"highlight" : {
    "message" : [ "some <em>foo</em> text" ]
 }

如果匹配的文档中的字段消息是:

"Here is some foo text"

有没有办法知道该摘要从匹配字段的char 8开始到char 21?

知道匹配 令牌 的开始/结束偏移量对我也很有益-也许有一种方法可以使用script_fields访问该信息?显示了如何获取令牌,而不是偏移量)。

“消息”字段具有:

"term_vector" : "with_positions_offsets",
"index_options" : "positions"

问题答案:

客户端方法实际上是标准做法。

我们已经讨论了添加偏移量,但担心会导致更多的混乱。提供的偏移量特定于Java的UTF-16字符串编码,尽管从技术上讲,它们可以用于计算$LANG中的片段,但解析响应文本以指定的分隔符的方式更简单。



 类似资料:
  • 我正在使用Spring Elasticsearch chRepository来查询Elasticsearch: 我可以成功运行搜索查询并检索映射到MyDocument bean中的elasticsearch结果列表 虽然发送到elasticsearch和响应的查询是正确的(我可以在调试日志中看到突出显示块)并且结果也合适,但我不知道如何在我的java代码中获取突出显示信息。 我不想使用Elasti

  • 问题内容: 我需要在段落中突出显示关键字,就像google在其搜索结果中一样。假设我有一个带有博客文章的MySQL数据库。当用户搜索某个关键字时,我希望返回包含这些关键字的帖子,但只显示帖子的一部分(包含搜索关键字的段落)并突出显示那些关键字。 我的计划是这样的: 找到内容中包含搜索关键字的帖子ID; 再次阅读该帖子的内容,并将每个单词放入固定的缓冲区数组(50个单词)中,直到找到关键字。 您能为

  • 问题内容: 我已经使用n- gram标记器在elasticsearch中提出了自动建议。现在,我想在自动建议列表中突出显示用户输入的字符序列。为此,我使用了elasticsearch中可用的荧光笔,我的代码如下所示,但是在输出中,完整的术语被突出显示了我要去哪里了。 结果是 映射 设定 如何突出显示软件而不是软件开发。 问题答案: 在这种情况下,应使用ngram标记器而不是ngram过滤器突出显示

  • 问题内容: 我正在使用Apache PDFbox库从PDF文件中提取突出显示的文本(即黄色背景)。我对这个库是完全陌生的,并且不知道它用于哪个目的。到目前为止,我已经使用以下代码从注释中提取了文本。 现在,我需要突出显示文本,任何代码示例都将受到高度赞赏。 问题答案: 问题中的代码无法读取行中突出显示的确切文本,已经说明了大多数概念,这些概念可用于从具有PDFBox的页面上的有限内容区域提取文本。

  • 我使用Apache PDFbox库从PDF文件中提取突出显示的文本(即黄色背景)。我对这个库完全陌生,不知道该使用其中的哪个类。到目前为止,我已经使用下面的代码从注释中提取了文本。 现在我需要得到突出显示的文本,任何代码示例都将受到高度赞赏。

  • 问题内容: 我已经使用Nest成功地获得了结果和突出显示,但是如果我在其中搜索突出显示的两个字段中都仅使用了Elasticsearch查询的最后一个字段。例如以下 表示我只能从“摘要”字段中获得突出显示。如果我直接使用等效查询查询elasticsearch,则可以从两个字段中检索突出显示。例如 Nest有可能做到这一点吗?难道我做错了什么? 问题答案: 每个突出显示的字段都需要一个单独的“ .On