库查询语句。 170 2.5.2 查询添加删除索引 Solr 提供了一个易于使用的、基于 Java 的 API,它避免了 HTTP 链接和 XML 命令 的所有弊端。这个称为 SolrJ 的新客户机使得通过 Java 代码处理 Solr 更加轻松。SolrJ API 通过良好定义的方法调用简化了索引创建、搜索、排序和分类。 本文中使用SolrJ 来进行索引的添加删除,以及执行中文搜索。 175 查询关键代码如下: CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(SOLR_URL); SolrQuery query = new SolrQuery(); query.setQuery(":"); QueryResponse rsp = solrServer.query( query ); 180 SolrDocumentList docs = rsp.getResults(); for ( Object obj:docs) { SolrDocument doc=(SolrDocument)obj; String USERNAME = (String) doc.getFieldValue("USERNAME"); String USERCODE = (String) doc.getFieldValue("USERCODE"); 185 } 通过SolrJ 查询只需先建立连接CommonsHttpSolrServer,然后定义SolrQuery,添加查 询语句setQuery(),然后就可以通过QueryResponse 类型的对象读出查询结果。 添加单独索引时,在建立连接的基础上创建SolrInputDocument 类型,通过addField() 方法添加相应的索引域和内容,最后执行add()方法以及commit()方法即可。 190 删除单独索引时,在建立连接的基础上执行deleteByQuery()方法,再commit()就可以完 成根据查询结果删除索引。 3 结果分析 3.1 Solr 开销 Solr 导入千万级数据花费20 分52 秒。 195 索引文件占用空间643M。 图2 导入结果 Fig. 2 Import Results 200 3.2 搜索时间对比 查询抽取JAVA 中文字库GB2312 中的字,使用单字查询。Solr 采用SolrJ 接口,读取 查询时间rsp.getQTime(),数据库采用模糊查询like%%。 经1000 次统计测试,Solr 平均查询时间:3.07MS,数据库平均查询时间:7631.1MS。可 以看出,使用搜索引擎查询的时间是数据库查询的千分之一量级。 205 4 结论 在进行海量数据搜索的时候,如果仅仅使用数据库的技术,那将带来非常大的痛苦,速 度会是最大的瓶颈,此外还会带来搜索结果不匹配等令人沮丧的问题。本文提出了使用Solr 建立数据库搜索引擎,并结合具体代码简单说明如何构建Solr 搜索引擎,并在最后进行了 比较,Solr 的搜索引擎优势是显而易见的。 学术论文网Tag:代写论文 论文发表 计算机论文 职称论文发表 |