@RequestMapping(value = "sqlselect4.do",method = RequestMethod.POST)
public ServerResponse select4(@RequestParam(value = "name",defaultValue = "") String name) throws Exception
{
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddresses(
new TransportAddress(InetAddress.getByName("master"),9300));
System.out.print("连接信息:" + client.toString());
SearchResponse response = client.prepareSearch("test6")//设置要查询的索引(index)
.setSearchType(SearchType.QUERY_THEN_FETCH)
.setTypes("qiye_xinxi")//设置type, 这个在建立索引的时候同时设置了, 或者可以使用head工具查看
.setQuery(QueryBuilders.matchPhraseQuery("Danwei_Name", "石家庄")) //在这里"message"是要查询的field,"Accept"是要查询的内容
.setFrom(0)
.setSize(1000)
.setExplain(true)
.execute()
.actionGet();
List userVoList=new ArrayList();
for (SearchHit hit : response.getHits()) {
ResultVo userVo=new ResultVo();
JSONObject obj = new JSONObject(hit.getSourceAsString());
userVo.setQiye_ID(obj.getString("Qiye_ID"));
userVo.setDanwei_Name(obj.getString("Danwei_Name"));
userVo.setSocialCreditCode(obj.getString("SocialCreditCode"));
userVo.setDanwei_Code(obj.getString("Danwei_Code"));
userVo.setChangeQXBMTime(obj.getString("Create_DATE"));
userVoList.add(userVo);
}
client.close();
return ServerResponse.createBySuccess(userVoList);
}
查找单位名称包含“石家庄”的前1000条记录。我是在单机上搭建的,单表数量为80万,请大神看看代码哪块有问题?有什么可以优化的地方。