• solr 索引库的维护


    一、配置中文分析器:IK-analyzer,在FieldType中指定中文分析器:
    1 复制IK-analyzer到你的服务器指定目录中。
    2 在该目录中,我们需要的东西有:IKAnalyzer的jar包,IKAnalyzer.cfg.xml,mydict.dic和ext_stopword.dic
    3 需要把这个jar包添加到solr工程中:
    cd IKAnalyzer/

    cp IKAnalyzer.jar /home/wangchao/solr/apache-tomcat-8.0.46/webapps/solr/WEB-INF/lib/
    4 需要把扩展词典和停用词词典和配置文件复制到solr工程的classpath中:
    cd /home/wangchao/solr/apache-tomcat-8.0.46/webapps/solr/WEB-INF

    mkdir classes

    cp IKAnalyzer.cfg.xml mydict.dic ext_stopword.dic /home/wangchao/solr/apache-tomcat-8.0.46/webapps/solr/WEB-INF/classes
    5 注意扩展词典和停用词词典必须是UTF-8的,不能使用windows的记事本编辑。
    6 配置FieldType,需要在solr_home/colection1/conf/schema.xml中配置,在最底部添加扩展的IKAnalyzer:
    cd /home/wangchao/solr/solr_home/collection1/conf

    vi schema.xml:
    #specified ik analyzer
    <fieldType name="text_ik" class="solr.TextField">
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>

    二、定义solr的业务字段,与你想要进行索引的字段进行绑定:
    1 根据你的数据库情况,将你需要进行索引的字段绑定:
    <field name="article_title" type="text_ik" indexed="true" stored="true" />
    <field name="article_content" type="text_ik" indexed="true" stored="true" />
    <field name="article_time" type="text_ik" indexed="true" stored="true" />
    <field name="news_type" type="text_ik" indexed="true" stored="true" />
    <field name="article_keywords" type="text_ik" indexed="true" stored="false" multiValued="true" />
    <copyField source="article_title" dest="article_keywords"/>
    <copyField source="article_content" dest="article_keywords"/>
    <copyField source="article_time" dest="article_keywords"/>
    <copyField source="news_type" dest="article_keywords"/>
    注:部分schema.xml的关键词的意义,在另外一个文档中,名叫“solr的schema.xml配置文件关键词意义”。
    2 重启tomcat
    三、solr管理界面的使用:
    1 重要的功能:
    Documents:
    可以添加相应的索引内容。
    Query:
    q:查询条件: *:* 表示查询所有域;article:xx 指定你想要查询的域(此处是article)。
    fl:返回域, 默认所有域。
    df:默认搜索域,可以指定为article_keywords。
    hl.simple.pre和hl.simple.post:高亮域。
    sort:排序域。
    start,rows:开始指定行。
    四、索引库的维护:
    1 增加:
    直接使用Documents新增。
    2 修改:
    没有update,只用新增一个相同ID的索引即可,原理是先删除,后新增。
    3 删除两种方法:
    1<delete>
    <id>xxx</id>//指定索引的ID
    </delete>
    <commit/>
    2根据查询删除:
    <delete>
    <query>*:*</query>//删除所有
    </delete>
    <commit/>
    五、将数据库的内容与solr业务字段关联并且进行索引存储:
    1 第一种方式:Dataimport
    2 使用代码:
    1Solrj客户端的使用:
    1需要依赖solrj的jar包。
    2进行简单测试,使用solrj添加文档:
    public void addDocument() throws Exception{
    String baseUrl="http://39.108.75.175:8082/solr";
    SolrServer solrServer=new HttpSolrServer(baseUrl);
    //创建一个文档对象
    SolrInputDocument solrInputDocument=new SolrInputDocument();
    solrInputDocument.addField("id","test001");
    solrInputDocument.addField("article_title","新闻测试");
    solrInputDocument.addField("article_content","新闻内容啊啊啊");
    //把文档对象写入索引库
    solrServer.add(solrInputDocument);
    //提交
    solrServer.commit();
    }
    3删除文档:
    public void deleteDocument() throws Exception{
    //创建连接
    SolrServer solrServer=new HttpSolrServer();
    //solrServer.deleteById("");//给定索引ID
    solrServer.deleteByQuery("*:*");//通过查询删除
    //提交
    solrServer.commit();
    }
    2把新闻信息导入到索引库中:
    1 使用java程序读取mysql数据库中的商品信息,然后创建solr文档对象,将这个商品信息写入索引库。
    2 创建一个搜索的服务工程来发布服务:deepbreath-search:
    3 具体业务逻辑根据需求来做
    3 使用搜索引擎:
    1 查询:
    public void queryDocument() throws Exception{
    //创建连接
    SolrServer solrServer=new HttpSolrServer();
    //设置查询条件
    SolrQuery query=new SolrQuery();
    query.setQuery("*:*");
    //查询条件
    query.setStart(20);
    query.setRows(50);
    //执行查询
    QueryResponse response=solrServer.query(query);
    SolrDocumentList list=response.getResults();
    for(SolrDocument document:SolrDocumentList){

    }
    }
    2 整合Dao:

    3 整合Service:
    1 查询的结果封装为一个pojo对象
    2 查询的结果的SolrQuery应该有这些内容:分页、默认搜索域、高亮




  • 相关阅读:
    Nature:肿瘤转移后的基因组特征
    Nature | 生物体可以从头产生新基因
    一文读懂:DNA甲基化的作用及各种高通量检测方法比较
    Nature | 新技术scSLAM-seq可在单细胞水平揭示转录动态变化的核心特征
    一文读懂长非编码RNA(lncRNA)的分类、功能及测序鉴定方法
    Science重磅 | 新技术Slide-seq能以高空间分辨率测量全基因组的表达情况
    Science综述 | 用单细胞基因组学将人类细胞表型匹配到基因型
    Nature Methods | 新软件SAVER-X可对单细胞转录组学数据进行有效降噪
    Circular RNA的产生机制、功能及RNA-seq数据鉴定方法
    一文搞懂基因融合(gene fusion)的定义、产生机制及鉴定方法
  • 原文地址:https://www.cnblogs.com/laowangc/p/8869987.html
Copyright © 2020-2023  润新知