全文检索引擎Solr(入门及其相关案例分析)

Apache Solr是一个开源搜索服务器,基于Lucene,提供高性能的文本搜索功能。IK Analyzer是用于Java的中文分词工具,可配置到Solr中。Spring Data Solr是Solrj的封装框架,简化了与Solr项目的交互。本文将介绍Solr的入门、IK Analyzer的配置以及Spring Data Solr的使用。
摘要由CSDN通过智能技术生成

什么是Solr

大多数搜索引擎应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源消耗,并且它们会由于沉重的数据库加载而拖垮你的应用的性能。
这就是为什么转移负载到一个外部的搜索服务器的主要原因,Apache Solr是一个流行的开源搜索服务器,它通过使用类似REST的HTTP API,确保你能从几乎任何编程语言来使用solr。Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。Solr是企业级的,快速的,高度可扩展的

总之,Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据,我们常用这中搜索引擎来实现我们的工作,而不是在数据库中来实现我们的搜索功能,能够加快我们的工作效率等

中文分析器IK Analyzer

IK Analyzer简介

IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。从 3.0 版本开始,IK 发展为面向 Java 的公用分词组件,独立 Lucene 项目,同时提供了对 Lucene 的默认优化实现。在 2012 版本中,IK 实现了简单的分词歧义排除算法,标志着 IK 分词器从单纯的词典分词向模拟语义分词衍化

IK Analyzer配置
上传文件到相对对应的solar路径,并填写其相对于的数据到对应的schema.xml文件,即是配置ik分词器到对应的搜索引擎中
在这里插入图片描述
在这里插入图片描述
Spring Data Solr入门

Spring Data Solr简介

经过上面的安装和配置大家应该已经知道如何配置Solr,那么就会思考一个问题了:这个solr项目和我们实际的项目查询有什么关系呢?是怎么结合的呢?

solr官方提供了solrj API,就是一个jar文件,我们可以通过solr官方提供的接口来实现本地项目和solr项目的交互;而这里我们要介绍的是Spring Data Solr,它是Spring Data家族对solrj进行封装后的框架。

创建项目并导入相关的pom文件中依赖

 <dependencies>
        <!--显然是solr各层的相关的数据的整合 桌面的各层的业务的逻辑的体现-->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-solr</artifactId>
            <version>1.5.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
 </dependencies>

配置相关的solr的配置文件

    <!-- solr服务器地址 可以查询其相对应的其服务器地址-->
    <solr:solr-server id="solrServer" url="http://192.168.220.130:8080/solr/collection1"/>

    <!-- solr模板,使用solr模板可对索引库进行CRUD操作 -->
    <bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
        <!--构造方法,将其服务的地址给传递出来,可以在工程中直接引用-->
        <constructor-arg ref="solrServer"/>
    </bean>

在这里插入图片描述
配置其相关的实体类(表实合一)

package com.offcn;

import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.solr.core.mapping.Dynamic;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

public class TbItem implements Serializable {
   

    @Field
    private Long id;

    @Field("item_title")
    private String title;

    private String sellPoint;

    @Field("item_price")
    private BigDecimal price;
    private Integer stockCount;
    private Integer num;
    private String barcode;

    @Field("item_image")
    private String image;
    private Long categoryid;
    private String status;
    private Date createTime;
    @Field("item_updatetime")
    private Date updateTime;
    private String itemSn;
    private BigDecimal costPirce;
    private BigDecimal marketPrice;
    private String isDefault;
    @Field("item_goodsi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值