elasticsearch中数据的插入与查询
来源:互联网 发布:仿百度搜索引擎源码 编辑:程序博客网 时间:2024/05/14 16:35
public class ClientFactory { private String clusterName="elasticsearch"; private String addressIp="192.168.88.122"; private boolean isClient=true; private Node node; Client client; static Log log = LogFactory.getLog(ClientFactory.class); public ClientFactory(){ node = org.elasticsearch.node.NodeBuilder.nodeBuilder().clusterName(clusterName).client(isClient).node(); Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", clusterName).put("tclient.transport.sniff", true).build(); client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(addressIp, 9300)); } public ClientFactory(String clusterName, boolean isClient){ this.clusterName=clusterName; this.isClient=isClient; //node = org.elasticsearch.node.NodeBuilder.nodeBuilder().clusterName(clusterName).client(isClient).node(); //Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", clusterName).put("tclient.transport.sniff", true).build(); //client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(addressIp, 9300)); } public synchronized Client client(){ return client; } public String getClusterName() { return clusterName; } public void setClusterName(String clusterName) { this.clusterName = clusterName; } public boolean isClient() { return isClient; } public void setClient(boolean isClient) { this.isClient = isClient; } @PreDestroy public void stop(){ node.stop(); } }
插入模块:
public void insertElasticSearch(Map<String, Object> map) { Client client=factory.client(); //(索引名,类型名) IndexRequestBuilder builder=client.prepareIndex("company", "info"); if(map!=null){ String json=JSON.toJSONString(map); IndexResponse response = builder.setId(String.valueOf(map.get("id"))).setSource(json).execute().actionGet(); } }
查询模块:
public void queryInfo(){ List<Map<String,String>> infoList=new ArrayList<Map<String,String>>(); Client client=factory.client(); String str ="yyx,pjx,xyx,hrx,mls,lxs,yys"; String ts = str.replaceAll(" +", " ");//将多个空格转换为一个空格," +"表示多个 String sp[] = str.split(","); int len=sp.length;// QueryBuilder queryBuilder = QueryBuilders.disMaxQuery()// .add(QueryBuilders.termsQuery("filed", sp).minimumMatch(len));// Operator operator=null;// QueryBuilder queryBuilder = QueryBuilders.disMaxQuery()// .add(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("filed", "中国").operator(operator.AND))// .add(QueryBuilders.boolQuery().must(QueryBuilders.termsQuery("name", sp))); SearchResponse response = client.prepareSearch("company") .setTypes("info") .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(queryBuilder) // .addHighlightedField("title") // .setHighlighterPreTags("</span style=\"color:red\">")// .setHighlighterPostTags("</span>") // .addSort("date", SortOrder.DESC) // .setFrom((pageNo - 1) * pageSize).setSize(pageSize) .setExplain(true) .execute() .actionGet(); SearchHits searchHits = response.getHits(); long s = searchHits.getTotalHits(); System.out.println("total: "+s); SearchHit[] hits = searchHits.getHits(); Object title=null; for (int i = 0; i < hits.length; i++) { SearchHit hit = hits[i]; title= hit.getSource().get("companyName"); System.out.println("company: "+title); }/** for (int i = 0; i < hits.length; i++) { SearchHit hit = hits[i]; Map<String, HighlightField> result = hit.highlightFields(); JSONObject json=(JSONObject) JSONObject.toJSON(result); if(json.containsKey("title")){ HighlightField titleField = result.get("title"); Text[] titleTexts = titleField.fragments(); for(Text text : titleTexts){ title=text; } }else{ title= hit.getSource().get("title"); //System.out.println(hit.getSource().get("title")+" "+ hit.getSource().get("date")+" "+hit.getId()); } System.out.println(title); Map item=new HashMap(); item.put("title", title); infoList.add(item); } **/ }
0 0
- elasticsearch中数据的插入与查询
- mysql blob数据的插入与查询
- JDBC中DoInsert(插入数据)与DoSelect(查询数据)方法的实现
- golang自定义数据类型查询与插入postgresql中point数据
- 初识pyes(实现elasticsearch数据的插入)
- ElasticSearch插入数据
- ElasticSearch插入数据优化
- elasticsearch插入数据
- ElasticSearch插入数据问题
- 空间数据的插入与查询(Django+Postgis)
- MySQL 入门 之 数据的插入、查询、更新与删除
- ASP中查询与插入
- laravel如何查询elasticsearch的数据
- pyes对elasticsearch的数据基本查询
- ElasticSearch 数据查询
- MongoDB geo 数据插入与查询一
- (五)ElasticSearch插入数据
- Elasticsearch java api 插入数据
- 利用spring提供的工具类读取资源文件
- 期末程序设计——利用位运算加密
- POI Excel导出样式设置
- 打开一个txt文件,读取里面的内容并打印出来
- java.lang.NoClassDefFoundError:Android5.0以下错误
- elasticsearch中数据的插入与查询
- Swift present 与 push 跳转问题
- Excel模板导出
- Conversion to Dalvik format failed with error 1
- Data types,Operators,Expressions
- 面试
- 用Eclipse-Mars.1 Release版本开发Android虚拟机启动不了解决办法
- android短信验证码(mob)
- P1162 填涂颜色