测试全文检索 高亮最好的

/**
* 最终全文检索同步测试版
* 改成无管道流 6/19
*/
@Test
public void essearchAl() throws UnknownHostException {
Settings settings=Settings.builder().put(“cluster.name”, “cluster-elasticsearch-prod”).build();
TransportClient client=new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.107”), 9300))
.addTransportAddress(new TransportAddress(InetAddress.getByName(“192.168.1.14”), 9300));
String filekeyword=null;
int page=1;
int limit=5;
QueryBuilder builder=QueryBuilders.boolQuery()
.should(QueryBuilders.multiMatchQuery(filekeyword, “FileName”))
.should(QueryBuilders.multiMatchQuery(filekeyword, “User_ID”))
.should(QueryBuilders.multiMatchQuery(filekeyword, “file-contents”));
HighlightBuilder highlightBuilder = new HighlightBuilder()
.field(“FileName”)
.field(“User_ID”)
.field(“file-contents”)
.fragmentSize(30)
.numOfFragments(1)
.noMatchSize(30)
.preTags("<span style=“color:red;font-weight:bold;font-size:15px;”>")
.postTags("");
SearchResponse response=client.prepareSearch(“tgdsm”)
.setTypes(“fileinfo”)
.setQuery(builder)
.highlighter(highlightBuilder)
.setFrom(page-1)
.setSize(limit)
.get();
SearchHits hits = response.getHits();
List<Map<Object,Object>> arrayList = new ArrayList<Map<Object,Object>>();
for (SearchHit searchHit : hits) {
LinkedHashMap<Object,Object> map = new LinkedHashMap<>();
Map<String, HighlightField> highlightFields = searchHit.getHighlightFields();
HighlightField highlightField1 = highlightFields.get(“FileName”);
if(highlightField1!=null) {
Text[] fragments1 = highlightField1.getFragments();
for (Text text : fragments1) {
map.putIfAbsent(“FileName”, text);
}
}
HighlightField highlightField2 = highlightFields.get(“User_ID”);
if(highlightField2!=null) {
Text[] fragments2 = highlightField2.getFragments();
for (Text text : fragments2) {
map.put(“User_ID”, text);
}
}
HighlightField highlightField3 = highlightFields.get(“file-contents”);
if(highlightField3!=null) {
Text[] fragments3 = highlightField3.getFragments();
for (Text text : fragments3) {
map.put(“file-contents”, text);
}
}
map.put(“FileSize”, searchHit.getSourceAsMap().get(“FileSize”));
map.put(“LastChangeTime”, searchHit.getSourceAsMap().get(“LastChangeTime”));
arrayList.add(map);
}
System.out.println("---------------"+arrayList);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值