solr 简介

本文深入探讨了Solr和Lucene的关系,解释了Solr如何基于Lucene提供企业级的搜索引擎服务,以及为何选择Solr而非直接使用Lucene或传统数据库进行全文搜索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。

 

Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。

 

Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。

 

Solr与Lucene 并不是竞争对立关系,Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的。

 

问题:我们可以使用数据库查询,为什么要用Solr呢?

答案:最大的一个原因是效率会高  很 多 ,还有其他原因,比如SQL无法做到相关度排序等等。

 

问题:我们为什么不用Lucene呢?

答案:Lucene的工作量过大,Solr是基于Lucene的框架,便捷完善,可配置可扩展,可以高效完成站内搜索功能。

 

问题:为什么为搭建在tomcat中?

答案:solr本身可以运行,不过它是运行在jetty上的,相比Tomcat显得不稳定,所以我们要在tomcat中搭建Solr

 

来自 <https://www.cnblogs.com/xuyiqing/p/8707966.html>

<think>我们正在处理用户关于Apache Solr的查询。用户要求提供使用指南、配置教程和常见问题解答。根据引用内容,我们可以总结以下关键点: 1. 安装步骤(包括Java环境准备、Solr下载解压、创建实例、启动服务等) 2. Solr基本概念(全文搜索、企业级应用等) 3. 配置(环境变量设置、系统服务配置等) 4. 管理界面使用 5. 高级功能(分面搜索、动态聚类等) 我们将按照以下结构组织回答: - Solr简介 - 安装指南(以Linux为例,简要提及Windows) - 基本配置 - 启动与访问 - 核心管理(创建、删除等) - 索引数据 - 查询示例 - 常见问题 注意:由于引用内容中提供了Windows和Linux的安装步骤,但用户没有指定操作系统,我们将以Linux为主,同时简要提及Windows。 同时,根据要求,我们需要在最后生成相关问题。 开始回答:</think>### Apache Solr 使用指南与配置教程 Apache Solr 是基于 Lucene 的开源企业级搜索平台,支持全文检索、分面搜索、高亮显示等功能。以下为关键操作指南: --- #### **一、安装与启动** 1. **环境准备** - 安装 Java JDK(推荐 JDK 11+): ```bash sudo apt install openjdk-11-jdk # Ubuntu/Debian ``` - 验证安装:`java -version` 2. **下载与解压 Solr** ```bash wget https://archive.apache.org/dist/solr/solr/8.11.2/solr-8.11.2.tgz tar -xzf solr-8.11.2.tgz cd solr-8.11.2 ``` 3. **启动 Solr** ```bash bin/solr start -p 8983 # 指定端口启动 ``` - 访问管理界面:`http://localhost:8983/solr` 4. **配置为系统服务(Linux)** 创建服务文件 `/etc/systemd/system/solr.service`: ```ini [Unit] Description=Apache Solr After=network.target [Service] User=solr ExecStart=/opt/solr/bin/solr start -p 8983 Restart=on-failure [Install] WantedBy=multi-user.target ``` 启用服务:`sudo systemctl enable solr`[^1][^3] --- #### **二、核心配置** 1. **创建核心(Core)** ```bash bin/solr create_core -c my_core # 创建名为 my_core 的搜索核心 ``` - 配置文件路径:`server/solr/my_core/conf/` 2. **修改 schema.xml** 定义字段类型(如文本、日期)和索引规则: ```xml <field name="title" type="string" indexed="true" stored="true"/> <field name="content" type="text_general" indexed="true" stored="false"/> ``` 3. **配置中文分词** 添加 IK Analyzer 插件: - 下载 IK Jar 包至 `server/solr-webapp/webapp/WEB-INF/lib/` - 在 `managed-schema` 中配置分词器: ```xml <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/> </analyzer> </fieldType> ``` --- #### **三、数据操作** 1. **索引数据(JSON 示例)** 通过 API 添加文档: ```bash curl -X POST -H 'Content-Type: application/json' \ 'http://localhost:8983/solr/my_core/update?commit=true' \ -d '[{"id":"1", "title":"Solr指南", "content":"全文搜索配置教程"}]' ``` 2. **查询数据** - 基础查询: ```bash http://localhost:8983/solr/my_core/select?q=title:指南 ``` - 分面统计: ```bash &facet=true&facet.field=category ``` --- #### **四、常见问题解决** 1. **启动失败:端口冲突** - 检查端口占用:`lsof -i:8983` - 更换端口:`bin/solr start -p 8984` 2. **中文分词无效** - 确认 IK Jar 包已放入正确路径 - 重启 Solr 并重建索引 3. **内存不足** 修改 `bin/solr.in.sh`: ```bash SOLR_JAVA_MEM="-Xms2g -Xmx4g" # 调整堆内存 ``` 4. **数据未更新** - 添加文档后执行硬提交:`&commit=true` - 或在 `solrconfig.xml` 中配置自动提交[^4] --- #### **五、高级功能** - **分面搜索(Faceting)**:统计字段分布(如商品分类计数) - **高亮(Highlighting)**:匹配片段标红 - **近实时搜索(NRT)**:索引变更秒级可见 - **集群模式(SolrCloud)**:通过 ZooKeeper 管理分布式节点[^2][^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值