"position": 1
    },
    {
        "111": "数据",
        "start\_offset": 2,
        "end\_offset": 4,
        "type": "CN\_WORD",
        "position": 2
    },
    {
        "111": "库",
        "start\_offset": 4,
        "end\_offset": 5,
        "type": "CN\_CHAR",
        "position": 3
    }
]
}
查询会将分词解析出的分词


ES查询条件 分词查询
http://localhost:9200/fileindex1/_search
{
 “query”: {
 “match”: {
 “name”: “文档数据库”
 }
 }
 }
@Test
 void testSearch1() throws IOException {
 SearchRequest searchRequest = new SearchRequest(“fileindex1”);
 //构建搜索条件
 SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//查询条件,我们可以使用SearchSourceBuilder工具来实现
    //精确匹配QueryBuilders.termQuery()
    MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("name","测试");
    sourceBuilder.query(matchQueryBuilder);
    sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
    searchRequest.source(sourceBuilder);
    SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
    System.out.println(JSON.toJSONString(searchResponse));
    System.out.println("+++++++++++++++++++++++++++++++++++++++++");
    for (SearchHit hit : searchResponse.getHits()) {
        System.out.println(hit.getSourceAsMap());
    }
}根据具体字段精确查询内容{
 “query”: {
 “fuzzy”: {
 “attachment.author.keyword”: “测试”
 }
 }
 }// 根据字段精准查询
 @Test
 void testSearch3() throws IOException {
 SearchRequest searchRequest = new SearchRequest(“fileindex1”);
 //构建搜索条件
 SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
 //查询条件,我们可以使用SearchSourceBuilder工具来实现
 //精确匹配QueryBuilders.termQuery()
 FuzzyQueryBuilder matchQueryBuilder = QueryBuilders.fuzzyQuery(“attachment.author.keyword”,“user
 “);
 sourceBuilder.query(matchQueryBuilder);
 sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
 searchRequest.source(sourceBuilder);
 SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
 System.out.println(JSON.toJSONString(searchResponse));
 System.out.println(”+++++++++++++++++++++++++++++++++++++++++”);
 for (SearchHit hit : searchResponse.getHits()) {
 System.out.println(hit.getSourceAsMap());
 }
 }ES 高亮显示查询http://localhost:9200/fileindex1/_search {
 “query”: {
 “bool”: {
 “should”: [
 {
 “match”: {
 “attachment.author”: “NOOB”
 }
 },
 {
 “match”: {
 “attachment.content”: “省政府”
 }
 }
 ]
 }
 },
 “highlight”: {
 “fields”: {
 “attachment.author”: {},
 “attachment.content”: {}
 }
 }
 }java 实现方式void testSearch2() throws IOException {
 SearchRequest searchRequest = new SearchRequest(“fileindex1”);
 //构建搜索条件
 SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
 //查询条件,我们可以使用SearchSourceBuilder工具来实现
 //精确匹配QueryBuilders.termQuery()
 MatchPhrasePrefixQueryBuilder matchQueryBuilder = QueryBuilders.matchPhrasePrefixQuery(“attachment.content”,“皇帝”);
 sourceBuilder.query(matchQueryBuilder);
 sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
 searchRequest.source(sourceBuilder);
 // 高亮显示
 HighlightBuilder highlightBuilder = new HighlightBuilder();
 highlightBuilder.field(“attachment.author”).field(“attachment.content”);
 highlightBuilder.preTags(“<span style=“color: red”>”);
 highlightBuilder.postTags(“”);
 sourceBuilder.highlighter(highlightBuilder);
 SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
 //System.out.println(JSON.toJSONString(searchResponse));
 System.out.println(“+++++++++++++++++++++++++++++++++++++++++”);
 System.out.println(JSON.toJSONString(searchResponse.getHits()));
 for (SearchHit hit : searchResponse.getHits()) {
 System.out.println(hit.getHighlightFields());