solr9.2.1使用教程

参考solr官网: solr官网

1. 导入jar包并启动solr

1.1 导入相关jar包

1.1.1 数据同步连接配置jar包

把相关jar包到目录solr-9.2.1\server\lib下,

  • 数据库相关jar包:(按使用的数据导入)
    mysql: mysql-connector-j-8.0.32.jar
    金仓: kingbase8-8.6.0.jar
    达梦: DmJdbcDriver18.jar
  • 数据库同步统一配置jar包:
    jetty-jndi-10.0.13.jar
    jetty-plus-10.0.13.jar
    jetty-util-10.0.13.jar
    druid-1.2.17.jar
    示例图
    在这里插入图片描述

1.1.2 数据同步与多变形检索jar包

把相关jar包拷贝到目录server\solr-webapp\webapp\WEB-INF\lib下,具体需要的jar包如下:

  • 数据库相关jar包:(按使用的数据导入)
    mysql: mysql-connector-j-8.0.32.jar
    金仓: kingbase8-8.6.0.jar
    达梦: DmJdbcDriver18.jar
  • 同步jar包:
    data-import-handler-9.0.0.jar 下载
  • 多边形检索jar包:
    jts-core-1.18.2.jar (maven仓库下载)
<dependency>
   <groupId>org.locationtech.jts</groupId>
   <artifactId>jts-core</artifactId>
   <version>1.18.2</version>
</dependency>

示例图
必要jar包目录

1.2 启动或重启solr

  • 进入bin目录运行命令:
    Unix或MacOS./solr start -force
    关闭:进入bin目录执行:./solr stop -force
    重启:进入bin目录执行:./solr restart -force
    Windowssolr start,或solr.cmd start
    启动成功会提示:Started Solr server on port 8983. Happy searching!。
    浏览器访问 http://localhost:8983/ 进入solr 后台如图:
    solr管理后台

2. 新建core并在core目录下新增及配置文件

  • 新增core

进入solr的bin目录, 执行命令:./solr create -c appDevice -force
建立成功后提示:“Created new core ‘appDevice’”,并在…/solr-9.2.1/server/solr目录下自动生成一个文件夹appDevice

如图:
core目录

  • 在生成的core目录下新增data-config.xml配置文件,参考如下:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <!-- 数据库信息 -->
	<dataSource type="JdbcDataSource"
			driver="com.mysql.jdbc.Driver"
			url="jdbc:mysql://192.168.1.186:3306/sioc_3_0"
			user="emt" password="chinaemt"/>
    <document>
        <!-- document实体 -->
        <entity name="app_device" pk="id"
                query="SELECT
                            ad.id,
                            ad.name AS deviceName,
                            ad.code,
                            ad.number,
                            ad.type AS typeCode,
                            ad.longitude,
                            ad.latitude,
                            ad.address,
                            ad.stream_media_url AS streamMediaUrl,
                            ad.platform_id AS platformId,
                            ad.meeting_code AS meetingCode,
                            ad.status AS status,
                            ad.cgcs_longitude AS cgcsLongitude,
                            ad.cgcs_latitude AS cgcsLatitude,
                            CONCAT( ifnull(ad.cgcs_longitude,ad.longitude),' ',ifnull(ad.cgcs_latitude,ad.latitude)) AS GEO
                        FROM
                            app_device ad
                        WHERE ad.type is not null
                        AND ad.is_deleted = 0"
                deltaQuery="SELECT ad.id  FROM app_device ad where ad.type is not null and is_deleted = 0 and ad.update_time>'${dataimporter.last_index_time}'"
                deletedPkQuery="SELECT ad.id  FROM app_device ad where is_deleted != 0"
                deltaImportQuery="SELECT
                                        ad.id ,
                                        ad.name AS deviceName,
                                        ad.code,
                                        ad.number,
                                        ad.type AS typeCode,
                                        ad.longitude,
                                        ad.latitude,
                                        ad.address,
                                        ad.stream_media_url AS streamMediaUrl,
                                        ad.platform_id AS platformId,
                                        ad.meeting_code AS meetingCode,
                                        ad.status AS status,
                                        ad.cgcs_longitude AS cgcsLongitude,
                                        ad.cgcs_latitude AS cgcsLatitude,
                                        CONCAT( ifnull(ad.cgcs_longitude,ad.longitude),' ',ifnull(ad.cgcs_latitude,ad.latitude)) AS GEO
                                    FROM
                                        app_device ad
                                    WHERE ad.id = '${dataimporter.delta.id}'">
            <!-- 数据库字段映射solr字段 -->
            <field column="id" name="id"/>
            <field column="deviceName" name="deviceName"/>
            <field column="code" name="code"/>
            <field column="number" name="number"/>
            <field column="longitude" name="longitude"/>
            <field column="latitude" name="latitude"/>
            <field column="cgcsLongitude" name="cgcsLongitude"/>
            <field column="cgcsLatitude" name="cgcsLatitude"/>
            <field column=
1 概述 4 1.1 企业搜索引擎方案选型 4 1.2 Solr的特性 4 1.2.1 Solr使用Lucene并且进行了扩展 4 1.2.2 Schema(模式) 5 1.2.3 查询 5 1.2.4 核心 5 1.2.5 缓存 5 1.2.6 复制 6 1.2.7 管理接口 6 1.3 Solr服务原理 6 1.3.1 索引 6 1.3.2 搜索 7 1.4 源码结构 8 1.4.1 目录结构说明 8 1.4.2 Solr home说明 9 1.4.3 solr的各包的说明 10 1.5 版本说明 11 1.5.1 1.3版本 11 1.5.2 1.4版本 12 1.6 分布式和复制 Solr 架构 13 2 Solr的安装与配置 13 2.1 在Tomcat下Solr安装 13 2.1.1 安装准备 13 2.1.2 安装过程 14 2.1.3 验证安装 15 2.2 中文分词配置 15 2.2.1 mmseg4j 15 2.2.2 paoding 19 2.3 多核(MultiCore)配置 22 2.3.1 MultiCore的配置方法 22 2.3.2 为何使用多core ? 23 2.4 配置文件说明 23 2.4.1 schema.xml 24 2.4.2 solrconfig.xml 25 3 Solr的应用 29 3.1 SOLR应用概述 29 3.1.1 Solr的应用模式 29 3.1.2 SOLR使用过程说明 30 3.2 一个简单的例子 30 3.2.1 Solr Schema 设计 30 3.2.2 构建索引 30 3.2.3 搜索测试 31 3.3 搜索引擎的规划设计 32 3.3.1 定义业务模型 32 3.3.2 定制索引服务 34 3.3.3 定制搜索服务 34 3.4 搜索引擎配置 34 3.4.1 Solr Schema 设计(如何定制索引的结构?) 34 3.5 如何进行索引操作? 36 3.5.1 基本索引操作 36 3.5.2 批量索引操作 37 3.6 如何进行搜索 39 3.6.1 搜索语法 39 3.6.2 排序 42 3.6.3 字段增加权重 42 3.6.4 Solr分词器、过滤器、分析器 42 3.6.5 Solr高亮使用 46 4 SolrJ的用法 46 4.1 搜索接口的调用实例 46 4.2 Solrj的使用说明 47 4.2.1 Adding Data to Solr 47 4.2.2 Directly adding POJOs to Solr 49 4.2.3 Reading Data from Solr 51 4.3 创建查询 51 4.4 使用 SolrJ 创建索引 52 4.5 Solrj包的结构说明 53 4.5.1 CommonsHttpSolrServer 53 4.5.2 Setting XMLResponseParser 53 4.5.3 Changing other Connection Settings 53 4.5.4 EmbeddedSolrServer 54 5 Solr的实际应用测试报告 54 5.1 线下压力测试报告 54 5.2 线上环境运行报告 54 6 solr性能调优 55 6.1 Schema Design Considerations 55 6.1.1 indexed fields 55 6.1.2 stored fields 55 6.2 Configuration Considerations 55 6.2.1 mergeFactor 55 6.2.2 mergeFactor Tradeoffs 56 6.3 Cache autoWarm Count Considerations 56 6.4 Cache hit rate(缓存命中率) 56 6.5 Explicit Warming of Sort Fields 56 6.6 Optimization Considerations 56 6.7 Updates and Commit Frequency Tradeoffs 56 6.8 Query Response Compression 57 6.9 Embedded vs HTTP Post 57 6.10 RAM Usage Considerations(内存方面的考虑) 57 6.10.1 OutOfMemoryErrors 57 6.10.2 Memory allocated to the Java VM 57 7 FAQ 58 7.1 出现乱码或者查不到结果的排查方法: 58
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值