es的几个重要接口的应用
2016-04-22 14:11
381 查看
一、全文的模糊查询(任何字段中很有"get"z字符串都认为是匹配)
1、测试数据
1,name,get,name
2,hget,age,name
3,name,age,hgeth
geth,name,age,name
5,name,age,name
2、测试代码
1、测试数据
结果返回,只不过是个范围)
1、测试数据
1,name,192.168.1.12,name
2,age,192.168.1.13,name
3,name,192.168.2.12,age
4,name,192.168.1.22,name
2、测试代码
1、测试数据
1,name,get,name
2,hget,age,name
3,name,age,hgeth
geth,name,age,name
5,name,age,name
2、测试代码
package com.query.dsl; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.Map; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.FilterBuilder; import org.elasticsearch.index.query.FilterBuilders; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.terms.LongTerms; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; import org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket; import org.elasticsearch.search.aggregations.metrics.MetricsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.cardinality.Cardinality; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentiles; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCount; public class QqueryString { public static void main(String[] args) throws ParseException { Client client = new TransportClient().addTransportAddresses(new InetSocketTransportAddress("192.168.174.129", 9300)); SearchResponse sr = client.prepareSearch("hive2esstringquery") .setTypes("info") .setQuery(QueryBuilders.queryStringQuery("*get*"))//全文检索通配符 .setSize(50) .execute() .actionGet(); SearchHits hits = sr.getHits(); if (null == hits || hits.totalHits() == 0) { System.out.println("对不起,您没有查询到结果!!"); } else { for (SearchHit hit : hits) { String json = hit.getSourceAsString(); System.out.println(json); } } } }3、测试结果
log4j:WARN No appenders could be found for logger (org.elasticsearch.plugins). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. {"par0":"2","par1":"hget","par2":"age","par3":"name"} {"par0":"3","par1":"name","par2":"age","par3":"hgeth"} {"par0":"1","par1":"name","par2":"get","par3":"name"} {"par0":"geth","par1":"name","par2":"age","par3":"name"}二、单个字段的模糊查询(指定字段只要含有“get”字符串就匹配成功)
1、测试数据
1,name,get,name 2,age,hget,name 3,name,hgeth,age 4,name,geth,name 5,name,age,name2、测试代码
package com.query.dsl; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.Map; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.FilterBuilder; import org.elasticsearch.index.query.FilterBuilders; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.terms.LongTerms; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; import org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket; import org.elasticsearch.search.aggregations.metrics.MetricsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.cardinality.Cardinality; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentiles; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCount; public class QqueryString { public static void main(String[] args) throws ParseException { Client client = new TransportClient().addTransportAddresses(new InetSocketTransportAddress("192.168.174.129", 9300)); SearchResponse sr = client.prepareSearch("hive2esstringquery") .setTypes("info") .setQuery(QueryBuilders.wildcardQuery("par2", "*get*"))//单个字段通配符 .setSize(50) .execute() .actionGet(); SearchHits hits = sr.getHits(); if (null == hits || hits.totalHits() == 0) { System.out.println("对不起,您没有查询到结果!!"); } else { for (SearchHit hit : hits) { String json = hit.getSourceAsString(); System.out.println(json); } } } }3、测试结果
log4j:WARN No appenders could be found for logger (org.elasticsearch.plugins). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. {"par0":"1","par1":"name","par2":"get","par3":"name"} {"par0":"2","par1":"age","par2":"hget","par3":"name"} {"par0":"4","par1":"name","par2":"geth","par3":"name"} {"par0":"3","par1":"name","par2":"hgeth","par3":"age"}三、前缀匹配(比如我要查询的是192.168.1.12,但是当输入192.168、192.168.1、192.168.1.1等的情况都会有相应
结果返回,只不过是个范围)
1、测试数据
1,name,192.168.1.12,name
2,age,192.168.1.13,name
3,name,192.168.2.12,age
4,name,192.168.1.22,name
2、测试代码
package com.query.dsl; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.Map; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.FilterBuilder; import org.elasticsearch.index.query.FilterBuilders; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.terms.LongTerms; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; import org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket; import org.elasticsearch.search.aggregations.metrics.MetricsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.cardinality.Cardinality; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentiles; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCount; public class QqueryString { public static void main(String[] args) throws ParseException { Client client = new TransportClient().addTransportAddresses(new InetSocketTransportAddress("192.168.174.129", 9300)); SearchResponse sr = client.prepareSearch("hive2esstringquery") .setTypes("info") .setQuery(QueryBuilders.queryStringQuery("*get*"))//全文检索通配符 //.setQuery(QueryBuilders.wildcardQuery("par2", "get*"))//单个字段通配符 //.setQuery(QueryBuilders.prefixQuery("par2", "192.168.2.1"))//单个字段的前缀匹配 .setSize(50) .execute() .actionGet(); SearchHits hits = sr.getHits(); if (null == hits || hits.totalHits() == 0) { System.out.println("对不起,您没有查询到结果!!"); } else { for (SearchHit hit : hits) { String json = hit.getSourceAsString(); System.out.println(json); } } } }3、测试结果
log4j:WARN No appenders could be found for logger (org.elasticsearch.plugins). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. {"par0":"1","par1":"name","par2":"192.168.1.12","par3":"name"} {"par0":"2","par1":"age","par2":"192.168.1.13","par3":"name"}
相关文章推荐
- C++的多态
- 关于DBCP配置
- ionic中actionsheet在安卓中显示样式问题
- 《翻译漫谈》笔记之4 as的理解和翻译
- spring AOP
- 工作流程中分支节点的跳转
- 简单整合Spring+SpringMVC+Mybatis
- Baas后台云服务-Sencha.io
- SQL Server 2008入门系列之设置数据库服务器的访问权限
- 实现ajax上传
- setTimeout方法
- mysql查询指定行数据
- rest请求测试工具介绍
- HTML DOM
- android 7个点折线图 chartview类
- js insertBefore
- BaaS后端云服务-StackMob
- ASP.NET MVC之文件上传【二】(九)
- jQuery插件库-收集最全最新最好的jQuery插件
- 使用C#格式化字符串 ~