elastic搜索的时候,对于过长的string字段不希望全部返回,而是只返回部分应该怎么做?
@纳兰琴 你好,想跟你请教个问题:
搜索的时候采用的是multi_match的best_fields方式,发现排第50左右的文档,已经不是title和body都能包含用来检索的关键字了,下面的做法,highlight对于不包含关键字的字段不予返回。但是仍然希望body能够返回部分内容,可以是body的头100个字符。应该怎么做?
下面是搜索部分的代码。
MultiMatchQueryBuilder mmqb = QueryBuilders.multiMatchQuery("sift 集群", "title^3", "body", "tag^2", "category^2") .type("best_fields") .tieBreaker((float) 0.3) .minimumShouldMatch("75%"); SearchResponse sr; SearchRequestBuilder srb; srb = client.prepareSearch("blog_v1") .setTypes("blogpost") .setFrom(100) .setSize(10) .setQuery(mmqb) .addFields("tag","category","url","title") .setHighlighterNoMatchSize(80) .setHighlighterPreTags("<em>") .setHighlighterPostTags("</em>") .addHighlightedField("title", 32) .addHighlightedField("body", 80); sr = srb.get();
如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。