gpt4 book ai didi

Elasticsearch 高亮 : how to get entire text of the field in Java client

转载 作者:行者123 更新时间:2023-11-29 02:51:01 24 4
gpt4 key购买 nike

我是 Elasticsearch 的新手。我希望在 Java 客户端中突出显示字段。如果我在 Windows 提示符下运行以下查询:

{
"query": {
"filtered" : {
"query" : {
"term" : {
"title" : "western"
}
},
"filter" : {
"term" : { "year" : 1961 }
}
}
},
"highlight" : {
fields" : {
"title" : {}
}
}
}

我得到漂亮的高亮文本如下:

{
"_index" : "book",
"_type" : "history",
"_id" : "1",
"_score" : 0.095891505,
"_source":{ "title": "All Quiet on the Western great Front", "year": 1961}
"highlight" : {
"title" : [ "All Quiet on the <em>Western</em> great Front dead" ]
}
}

亮点

  "highlight" : {
"title" : [ "All Quiet on the <em>Western</em> great Front dead" ]
}

可以很容易地转换成Java Map对象,“title”属性包含匹配字段的整个文本,这正是我想要的。

但是,在 Java 客户端中,我得到了突出显示的片段,它将同一字段的不同突出显示文本段放入一个文本数组中。

感谢和问候。

最佳答案

在 Java API 中,返回的片段的默认数量是 5。因此,如果您只想返回一个片段,则需要设置它。

client.prepareSearch("book")
.setTypes("history")
.addHighlightedField("title")
.setQuery(query)
.setHighlighterFragmentSize(2000)
.setHighlighterNumOfFragments(1);

关于Elasticsearch 高亮 : how to get entire text of the field in Java client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com