### Solr创建索引并查询的关键知识点 #### 一、Solr简介 Apache Solr是一款开源的全文搜索引擎平台,基于Lucene实现。它提供了一套完整的搜索解决方案,并且支持多种高级特性,如高亮显示、分面搜索、地理位置搜索等。 #### 二、SolrJ概述 SolrJ是Solr提供的Java API客户端库,用于与Solr服务器进行交互。通过SolrJ可以方便地执行索引文档、查询文档等操作。 #### 三、Solr创建索引流程 1. **建立SolrServer连接** - 使用`CommonsHttpSolrServer`类创建Solr服务器连接。 - 设置必要的参数,如URL、超时时间、最大连接数等。 2. **添加文档** - 创建一个SolrInputDocument对象,并设置相应的字段值。 - 调用`add`方法将文档添加到索引中。 - 可以选择性调用`commit`方法提交更改,或等待自动提交。 3. **删除文档** - 通过ID或查询语句删除指定文档。 - 同样需要调用`commit`方法确保更改生效。 #### 四、示例代码解析 ```java public class SolrServer { private static SolrServer solrServer = null; private static CommonsHttpSolrServer server = null; private static String url = "http://localhost:8080/solr"; public static synchronized SolrServer getInstance() { if (solrServer == null) { solrServer = new SolrServer(); } return solrServer; } public static CommonsHttpSolrServer getServer() { try { if (server == null) { server = new CommonsHttpSolrServer(url); server.setSoTimeout(1000); // socket read timeout server.setConnectionTimeout(1000); server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); // defaults to false server.setAllowCompression(true); // allow compression, defaults to false server.setMaxRetries(1); // defaults to 1 } return server; } catch (MalformedURLException e) { e.printStackTrace(); return null; } } } ``` - **单例模式**:通过单例模式确保SolrServer对象的唯一性。 - **设置SolrServer参数**:包括URL、超时时间、最大连接数等。 #### 五、Solr查询文档 1. **构建查询请求** - 创建`SolrQuery`对象,并设置查询字符串和其他参数。 - 常见参数包括`q`(查询字符串)、`start`(起始位置)、`rows`(返回行数)等。 2. **执行查询** - 使用`CommonsHttpSolrServer`对象的`query`方法执行查询。 - 处理返回的`QueryResponse`对象。 3. **解析结果** - 获取查询结果中的文档列表。 - 分析文档中的数据,如标题、内容等。 #### 六、查询结果示例分析 根据给定的查询结果示例,可以看出Solr返回了多批次的结果集,每批次包含一定数量的文档。这些文档包含了各种社会热点新闻、控诉信等内容,展示了Solr强大的全文检索能力。 - **查询性能指标**: - `QueryTime`:查询时间,单位毫秒。 - `ElapsedTime`:总的处理时间,单位毫秒。 - **查询结果**: - 总计条数:查询结果的总条数。 - 本批次条数:当前批次返回的文档数量。 - 文档内容:每篇文档的标题和简要描述。 #### 七、总结 通过SolrJ可以方便地实现索引创建和文档查询的功能。上述示例代码展示了如何配置SolrServer连接、执行查询以及解析查询结果的过程。此外,通过对查询结果的分析,我们可以看到Solr在处理大量文本数据时的强大功能,能够快速准确地返回用户所需的信息。
剩余36页未读,继续阅读
- qq_395174942017-09-12没啥用基本
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助