solr快速上手:创建核心/索引/core(四)

news2024/12/22 22:36:40

0. 引言

上节,我们讲解了solr的核心配置文件managed-schema,了解定义索引的核心配置标签,今天我们来实操配置,创建一个索引

solr快速上手:solr简介及安装(一)

solr快速上手:核心概念及solr-admin界面介绍(二)

solr快速上手:managed-schema标签详解(三)

1. 业务场景概述

本次我们来创建一个订单索引,该索引包含如下字段,并且设置从数据库同步数据

字段说明数据类型
id订单idlong
order_no订单号string
product_name商品名称string
create_time创建时间date
create_user创建人string
remarks备注string
status订单状态int
address地址string
labels商品标签(多个)string

2. 新建索引

1、在solr安装路径的server/solr文件夹下创建一个新文件夹,名称与索引名称一致,用于存放新索引相关配置文件

cd /data/solr-8.2.0
mkdir server/solr/orders

2、我们在上节讲到,可以通过复制server/solr/configsets/_default/conf来快速创建新的索引,那么我们先复制该配置文件夹到我们创建的orders

cp -R server/solr/configsets/_default/conf/* server/solr/orders

在这里插入图片描述

3、修改managed-schema配置文件,因为带了很多默认配置,如果都不需要或者觉得删除麻烦的话,可以重新创建一个managed-schema文件,文件配置内容如下:

注意:

  • _version_字段要开启索引和排序
  • 所有字段用到的fieldType要在配置文件中显示配置
<?xml version="1.0" encoding="UTF-8" ?>

<schema name="default-config" version="1.6">

    <!--  默认字段,不需要的可以删除  -->
    <field name="id" type="long" indexed="true" stored="true" required="true" multiValued="false" />
    <!-- docValues are enabled by default for long type so we don't need to index the version field  -->
    <field name="_version_" type="plong" indexed="false" stored="false"/>
    
    <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
    
    <!--  定义字段  -->
    <field name="order_no" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="product_name" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="create_time" type="date" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="create_user" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="remarks" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="status" type="int" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="address" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="labels" type="string" indexed="true" stored="false" required="true" multiValued="true" />

    <uniqueKey>id</uniqueKey>

    <!-- 要声明使用的type -->
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" />
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
    
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymGraphFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.FlattenGraphFilterFactory"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

</schema>

4、修改solrconfig.xml配置文件,因为里面有一些不需要的默认配置,我们需要将其去除:

比如这些typeMapper的类型我们都没用到,自然不需要

在这里插入图片描述

将下图中的add-schema-fields整个updateProcessor标签配置及引用处删除,如下,后续我们详细讲解solrconfig.xml的配置详情,这里我们先以创建好索引为主

在这里插入图片描述

5、在solr管理界面,core-admin菜单,点击add core新增索引,默认采用的是schema.xml的形式,如果你想要采用这种形式,如上节所说,需要在server/solr/orders/solrconfig.xml中添加配置<schemaFactory class="ClassicIndexSchemaFactory"/>

这里我们直接用默认的managed-schema来演示

在这里插入图片描述

6、创建成功后,在schema页面可以看到索引的字段结构

在这里插入图片描述

7、我们通过update接口新增几笔数据用于测试

{
"id": 1,
"order_no": "20230100001",
"product_name": "苹果",
"create_time": "2023-05-31 00:01:00",
"create_user": "张三",
"remarks": "快递需派送上门",
"status": 1,
"address": "贵阳市观山湖xxx路",
"labels": [
     "水果",
     "24小时",
     "生鲜链",
     "送货上门"  
 ]
}

在这里插入图片描述

8、点击全查询,可以看到我们刚刚创建的数据

在这里插入图片描述

3. 总结

如此,我们针对索引的新建就完成了,但是现在的数据还是手动添加的,理论上我们还需要从我们的数据库中把数据同步过来,实现自动数据同步,那么下一节,我们来看看solr数据同步如何操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/595732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python修改上一行:简化你的工作流程

Python修改上一行&#xff1a;简化你的工作流程 作为一名有10年Python编程经验的工程师&#xff0c;我一直在探索更加高效的工作方式。今天&#xff0c;我想向大家分享的是Python修改上一行的技巧&#xff0c;让你的工作流程更加简化&#xff0c;提高工作效率。 什么是Python…

【利用AI让知识体系化】进程和线程

文章目录 1. 介绍1.1 什么是进程1.2 什么是线程1.3 进程和线程之间的关系 2. 进程的概念2.1 进程的定义2.2 进程的特征2.3 进程的状态2.4 进程的调度 3. 线程的概念3.1 线程的定义3.2 线程的优点3.3 线程的实现3.4 线程的调度 4. 进程和线程的比较4.1 进程和线程的区别4.2 进程…

chatgpt赋能python:Python修改Word二级标题的SEO优化

Python修改Word二级标题的SEO优化 Python是一种非常流行的编程语言&#xff0c;可以用于许多各种各样的应用程序。其中之一是用Python处理文档&#xff0c;其中一个重要的任务是修改文档中的标题。二级标题是英文文档中非常常见的元素&#xff0c;这篇文章将介绍如何使用Pytho…

【MySQL新手到通关】第七章 聚合函数

文章目录 0. 前置1. 聚合函数介绍1.1 AVG 和 SUM 函数1.2 MIN 和 MAX 函数1.3 COUNT函数 2. GROUP BY2.1 基本使用 3. HAVING3.1 基本使用3.2 WHERE和HAVING的对比 0. 前置 为了方便测试&#xff0c;我们导入一些数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ------…

chatgpt赋能python:Python代码优化:如何放大你的SEO效果

Python 代码优化&#xff1a;如何放大你的SEO效果 Python语言编写的代码相较于其他编程语言而言具有一定的优势&#xff0c;因为Python语言编写的代码可读性高且易于维护&#xff0c;同时Python也支持多种不同的应用场景&#xff0c;包括网络编程&#xff0c;数据分析&#xf…

chatgpt赋能python:Python从文本中提取年份月份的方法

Python从文本中提取年份月份的方法 Python作为一种高效、优秀的编程语言&#xff0c;被广泛应用于文本分析、数据分析等领域。其中&#xff0c;从文本中提取年份月份是一项常见的工作。本文将介绍Python如何从文本中提取年份月份的方法&#xff0c;让您能够更好地应用Python进…

基于循环神经网络的语言模型:RNNLM、GRULM

基于循环神经网络的语言模型&#xff1a;RNNLM RNNLM首次提出是在《Recurrent neural network based language model》这篇非常重要的神经网络语言模型论文种,发表于2010年。这篇论文的主要贡献是: 首次提出并实现了一种基于循环神经网络(Recurrent Neural Network)的语言模型…

Linux 目录结构_安装Xshell6和Xftp6教程加 Xshell无法启动:要继续使用此程序........,的解决方法

Linux 目录结构 基本介绍 linux 的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录“/”&#xff0c;然后在此目录下再创建其他的目录。深刻理解linux 树状文件目录是非常重要的&#xff0c;这里我给大家说明一下。记住一句经典的话&#xff1a;在…

chatgpt赋能python:Python代码怎么自动排序?全面解析!

Python代码怎么自动排序&#xff1f;全面解析&#xff01; 在软件开发中&#xff0c;很多时候需要对数据进行排序操作&#xff0c;以便更好的管理和使用数据。Python提供了多种排序算法和排序函数&#xff0c;支持自定义排序规则&#xff0c;灵活多样。本文将为大家介绍常见的…

chatgpt赋能python:Python修改默认字体为黑体

Python修改默认字体为黑体 介绍 Python是一种高级编程语言&#xff0c;被广泛应用于人工智能、大数据分析、Web开发等领域。在Python中&#xff0c;字体颜色和样式对于代码阅读和可读性影响很大。然而&#xff0c;用Python自带的默认字体&#xff0c;代码阅读可能会产生疲劳感…

物流货物跟踪管理系统的设计与实现(论文+源码)_kaic

摘 要 为解决物流货物跟踪过程中&#xff0c;跟踪相关信息滞后的问题&#xff0c;本毕业项目设计了物流货物跟踪管理系统。本系统基于B/S架构&#xff0c;采用SSH技术&#xff0c;VUE框架&#xff0c;VS2019平台&#xff0c;Sqlserver数据库&#xff0c;实现了物流公司模块、…

linux系统从零开始搭建CICD jenkins环境

1、操作系统与环境 本文教你从零开始搭建jenkins环境&#xff0c;开始你的CICD之旅。 1.1 系统与安装环境 本文的环境为云服务器环境&#xff0c;系统为linux Red-hat系统。版本信息如下&#xff1a; Linux version 3.10.0-1160.88.1.el7.x86_64 (mockbuildkbuilder.bsys.ce…

基于Java的旅游网站的设计与实现(论文+源码)_kaic

摘 要 旅游业走过了改革开放&#xff0c;到现在依旧蓬勃发展。但是放眼国际社会&#xff0c;我们在旅游业发展的深度和广度上所做的努力还远远不够。在中国&#xff0c;旅游业也将成为经济崛起中的重要一环。目前&#xff0c;我们生活在一个信息时代里。无论是工作&#xff0c;…

chatgpt赋能python:Python:一种强大的编程语言

Python&#xff1a;一种强大的编程语言 介绍 Python是一种高级编程语言&#xff0c;旨在提高开发者的生产力和代码可读性。它是一种动态语言&#xff0c;使编写代码变得更加简单和容易。许多大型组织和企业都使用Python作为主要的编程语言&#xff0c;包括微软、Facebook、Go…

Java开发SDK详解

一、服务端开发 1、前言 1&#xff09;最近在对接外部平台的接口&#xff0c;对方提供了一个sdk&#xff0c;开发中直接引入到项目中。自己只需要组装参数&#xff0c;直接调用sdk中的方法就可以实现接口对接。 2&#xff09;sdk中包含了参数校验&#xff0c;加密验签&#x…

react项目+antd组件-demo:hello-world

在前端开发过程中&#xff0c;有涉及到使用antd组件部分。在项目中加一个antd,调整组件的大小、位置、颜色&#xff0c;花费时间比较多&#xff0c;效率不高&#xff0c;可以通过本文叙述的方式建立一个前端demo&#xff0c;用于调整组件的大小、位置、颜色&#xff0c;验证组件…

C语言_结构体

文章目录 一、结构体结构的基础知识 二、结构体类型的声明三. 结构体初始化四.结构成员的类型五.结构体变量的定义和初始化六.结构体成员访问6.1结构体变量访问成员6.2结构体指针访问指向变量的成员&#xff08;箭头操作符 ->&#xff09; 七.结构体传参总结 一、结构体 结…

MySQL 事务简介

事务简介 事务的起源 狗哥和猫爷是⼀对好基友&#xff0c;他们都到银⾏开⼀个账户&#xff0c;他们在现实世界中拥有的资产就会体现在数据库世界的account表中。⽐如现在狗哥有11元&#xff0c;猫爷只有2元&#xff0c;那么现实中的这个情况映射到数据库的account表就是这样&…

机器学习常识 11: logistic 回归

摘要: logistic 回归是使用超平面将空间分开, 一边是正样本, 另一边是负样本. 因此, 它是一个线性分类器. 1. 线性分类器 如图 1 所示, 若干样本由两个特征描述, 对应于二维平面上的点. 它们为正样本或负样本, 由不同颜色表示. 现在需要使用一条直线将正、负样本分开. 这样, …

比ureport好用的报表工具-VeryReport报表工具

作为一名报表开发人员&#xff0c;你一定知道&#xff0c;一个好用的报表工具是多么重要。它可以让你更快、更准确地完成报表开发任务&#xff0c;并且帮助你更好地展现数据。今天我想向大家介绍一款非常优秀的报表工具——VeryReport报表工具。 编辑搜图 请点击输入图片描述&…