最近接触搜索相关的内容,所以熟悉下solr的使用以及如何在java中使用solr实现搜索功能。 1、solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 2、倒排索引 有的人会疑惑,搜索通过数据库也能直接查到为什么还要solr这类搜索引擎。例如我现在要搜索"solr"相关的内容,通过数据库模糊匹配%solr%可以查到,数量少的话查询速度还挺可观,如果数据量到达百万级千万级甚至更多,可能查出来得猴年马月了。 而solr用的倒排索引可以解决这一问题。 什么是倒排索引,先说下正排索引。 假如我有部分数据 文档id 文档内容 1 solr的使用以及如何在java中使用solr实现搜索功能 2 solr是一个独立的企业级搜索应用服务器 3 倒排索引和正排索引 4 搜索引擎 假如我要搜索solr,通过正排索引就是文档id作为索引,找到内容包含solr的文档。文档数量多了之后极大增加的搜索时间。 而倒排索引是将文档内容分词后建立索引。 单词内容 文档id solr 1,2 java 1 搜索 1,2,4 索引 3 服务器 2 此时我要搜索solr时直接通过单词内容索引,找到文档id列表