Elasticsearch使用
文档链接:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-getting-started-initialization.html
- 配置config
import org.apache.http.HttpHost; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class EsConfig { @Bean public RestHighLevelClient restHighLevelClient(){ RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("IP", 端口, "http"))); return client; } }
- 创建util
@Component public class ElasticsearchUtil { @Autowired private RestHighLevelClient restHighLevelClient; private static RestHighLevelClient restClient; @PostConstruct public void init() { restClient = this.restHighLevelClient; } SearchRequest searchRequest = new earchRequest(索引名称); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().trackTotalHits(true); BoolQueryBuilder queryBuilders1 =QueryBuilders.boolQuery(); if(StringUtils.isNotBlank(keyWord)){ String param = "*"+keyWord+"*"; //MatchQueryBuilder termQueryBuilder = QueryBuilders.matchQuery("字段","查询的值"); //matchQuery:会将搜索词分词,再与目标查询字段进行匹配,若分词中的任意一个词与目标字段匹配上,则可查询到。 //termQuery:不会对搜索词进行分词处理,而是作为一个整体与目标字段进行匹配,若完全匹配,则可查询到。 queryBuilders1.must(QueryBuilders.wildcardQuery("name.keyword",param)); } //分页查询,从第0条,查询100条数据 searchSourceBuilder.query(queryBuilders1).from(0).size(100); searchRequest.source(searchSourceBuilder); search = restClient.search(searchRequest, RequestOptions.DEFAULT); }
- maven
org.elasticsearch.client elasticsearch-rest-high-level-client7.4.2 org.elasticsearch elasticsearchorg.elasticsearch.client elasticsearch-rest-clientorg.elasticsearch.client elasticsearch-rest-client7.4.2 org.elasticsearch elasticsearch7.4.2 io.searchbox jest5.3.3 com.janeluo ikanalyzer2012_u6
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)