Solr入门(三)Solr字段/索引/中文分词

前言

      本章讲解Solr字段的操作

方法

1.概念

我们知道,我们要查找的一定是数据库中的某些字段。那么,我们需要在Solr中创建同样的字段来供我们的服务器进行查找,同时也是相当于表的字段,方便以后创建索引数据,如此才能缓解我们服务器的压力,这也是使用Solr的关键所在。

2.新建Solr字段

首先我们来看一下User.java的配置:

如此,我们需要向solr中添加三个字段,分别为id,username,password

由于id字段默认就存在,所以无需进行设置。

 

看到这个界面就哦了,你的字段顺利的创建完成。

3.创建示例索引数据

通过查询,我们成功的发现了我们添加的索引数据:

 

4.通过Java查询添加进入的数据

前提:solr支持多门语言,如果要支持Java,那么需要导入Java相关的jar包

编写如下代码进行测试:

import cn.edu.ccut.bo.User;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.junit.Test;

import java.util.List;

/**
 * @Auther:jwang
 * @Date:2019/2/6
 * @Description:PACKAGE_NAME
 * @Version 1.0
 **/
public class SolrTest {
    private static final String URL = "http://localhost:8983/solr/core1";

    @Test
    public void testSolrQuery() throws Exception{
        SolrClient client = new HttpSolrClient.Builder(URL).build();
        SolrQuery query = new SolrQuery();
        query.set("q","username:jwang");
        QueryResponse rsp = client.query(query);
        List<User> beans = rsp.getBeans(User.class);
        System.out.println(beans);
    }
}

 首先需要在User.java中添加注解@Field

测试结果如下:

 

我们发现,搜索username为jwang可以查找到一条数据。

但是,你仅仅查询"j"这个单词是无法查询到这条数据的,这是为什么呢?

Solr进行模糊查询的时候,是按照类型分词器进行查询,也就是说我们设置的类型是string,那么则按照string分词器进行查询。

这就意味着你只能通过jwang查询到这个数据。

那么中文的时候是如何分词的呢,我们可以亲自去试验一下:

 

如此分词十分的不好!!!

附录:

一、加入中文分词器进行中文分词

下载上面的jar包放入该目录下:

 对如下配置文件进行修改

 

在<schema>标签下加入如下内容:

<fieldType name="text_ik" class="solr.TextField">  
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
</fieldType>  
<field name="text_ik"  type="text_ik" indexed="true"  stored="true"  multiValued="false" />

重启solr,你会发现多了一种类型:

使用该类型进行中文分词如下:

 

这就十分完美了,通过以上字段都可以准确的查询到这条数据。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值