package com.zx.znyd.es; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.client.Client; import org.elasticsearch.client.Requests; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.mustache.Mustache; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.MatchQueryBuilder.Operator; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.sort.SortOrder; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.alibaba.fastjson.JSONObject; import com.zx.znyd.common.MD5; import com.zx.znyd.common.SpringContextUtil; import com.zx.znyd.dao.AutoReplyDao; import com.zx.znyd.data.model.AutoReply; import com.zx.znyd.data.model.LogIndex; import com.zx.znyd.service.AutoReplyDeployService; @RunWith (SpringJUnit4ClassRunner. class ) @ContextConfiguration (locations = "classpath:applicationContext.xml" ) public class TestES { @Autowired @Qualifier ( "esClient" ) private Client client; @Test public void testSearch() { String index= "index_log_daily" ; String type= "uq_log" ; String uquestion = "139" ; String province = "江苏" ; SearchResponse searchResponse = client.prepareSearch(index) .setTypes(type) .setQuery(QueryBuilders.matchAllQuery()) //查询所有 .setQuery(QueryBuilders.boolQuery() .must(QueryBuilders.matchQuery( "uquestion" , uquestion)) //查询uquestion为139的 .must(QueryBuilders.matchQuery( "province" , province))) //查询省份为江苏的 //.setQuery(QueryBuilders.matchQuery("uquestion", "12599").operator(Operator.AND)) //根据tom分词查询name,默认or //.setQuery(QueryBuilders.matchQuery("province", "江苏").operator(Operator.AND)) //根据tom分词查询name,默认or //.setQuery(QueryBuilders.multiMatchQuery("tom", "name", "age")) //指定查询的字段 //.setQuery(QueryBuilders.queryString("name:to* AND age:[0 TO 19]")) //根据条件查询,支持通配符大于等于0小于等于19 //.setQuery(QueryBuilders.termQuery("name", "tom"))//查询时不分词 .setSearchType(SearchType.QUERY_THEN_FETCH) .setFrom( 0 ).setSize( 10 ) //分页 //.addSort("age", SortOrder.DESC)//排序 .get(); SearchHits hits = searchResponse.getHits(); long total = hits.getTotalHits(); System.out.println(total); SearchHit[] searchHits = hits.hits(); for (SearchHit s : searchHits) { System.out.println(s.getSourceAsString()); String []logindex=s.getSourceAsString().split( "," ); } } } |