精华内容
下载资源
问答
  • solr使用

    2018-11-23 15:30:39
    下载solr程序压缩包   solr常用命令: solr start –p 端口号 启动solr服务 solr restart –p 端口号 重启solr服务 solr stop –p 端口号 关闭solr服务 进入到solr的bin目录,solr start -p 端口。指定...

    下载solr程序压缩包

     

    solr常用命令:

    solr start –p 端口号      启动solr服务

    solr restart –p 端口号  重启solr服务

    solr stop –p 端口号     关闭solr服务

    进入到solr的bin目录,solr start -p 端口。指定端口启动solr

     

    删除全部索引    <delete><query>*:*</query></delete><commit/>

    访问页面如下

     

    solr创建core

    在控制台,solr create -c 名称

    我这里是,solr create -c iscreamv2

     

    进入到server目录下的solr目录下,将发现创建的iscreamv2的core,创建这个有什么用?

     

    选择这个core可以将数据存储在这个core中,我有尝试两种办法添加数据

     

    第一种办法:

    手动添加数据

     

    第二种办法,连接数据,将数据库内容导入在solr的core iscreamv2的容器中

     

    如何连接数据库,将数据放进去?

    进入到solr创建的core中,需要编辑的文件已经列出来了

     

    编辑第一个文件,solrconfig配置文件,添加如下代码:

    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
          <lst name="defaults">
            <str name="config">data-config.xml</str>
          </lst>
    </requestHandler>

    比较重要的是添加了一个xml文件data-config.xml,这个文件是我们自己创建的,这个xml放什么?

    这个文件来,配置数据源与数据库表的实体

     

    如下;

    <dataConfig>
        <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?charactorEncoding=utf-8&amp;serverTimezone=UTC" user="root" password="514236" />
        <!--
        <document name="test1">
            <entity name="test" query="select * from enginedata" pk="eid">
                 <field column="eid" name="eid" />
                 <field column="longtime" name="longtime" />
            </entity>
        </document>
        -->
        
        <document name="test_1mil_data">
            <entity name="test_1mil_data" query="select * from test_1mil_data" pk="eid">
                 <field column="oid" name="oid" />
                 <field column="otime" name="otime" />
                 <field column="ophone" name="ophone" />
                 <field column="oprice" name="oprice" />
                 <field column="otype" name="otype" />
                 <field column="ozk" name="ozk" />
                 <field column="ostatus" name="ostatus" />
                 <field column="oaddress" name="oaddress" />
                 <field column="oyys" name="oyys" />
            </entity>
        </document>
        
        
    </dataConfig>

     

    上面是数据源的配置,在entity 中是配置一个个表格的实体,表的列明与取的别名,里面有个sql语句是: query="select * from test_1mil_data"

     

    这里是意思应该是,查询出表格所有数据,这个应该就是最终录入solr容器的数据。可以多配置几个,配置表格实体,执行sql获得数据。

     

    找到managed-schema配置数据库的地方,再次配置一次,这个配置是给solr看的

     

    <fields>
            <field name="oid" type="plong" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="otime" type="string" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="ophone" type="string" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="oprice" type="plong" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="otype" type="string" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="ozk" type="string" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="ostatus" type="string" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="oaddress" type="string" indexed="true" stored="true" required="true" multiValued="false" />
            <field name="oyys" type="string" indexed="true" stored="true" required="true" multiValued="false" />
        </fields>

    indexed增加索引,name名称。等等

     

    步骤是,config指明我们的xml,我们的xml配置数据源与表实体,里面配置query语句,是数据的来源。在scheam中配置字段给solr看。一个是告诉xml,一个指定数据源,一个是配置给solr看

     

    经过这个三个步骤后

    进入solr-webapp中,录入jar包进去,一个是mysql的jar,另外两个哪里找呢?

     

    在他的目录下是由的,不确定在哪个目录了,在solr的文件中是含有这两个jar的

     

    到这里就ok了,下面是连接数据库,将数据录入进去,

    启动solr:solr start -p 8081

    连接上solr,选择到我们创建的core,选择dataimport数据引入,选择我们mxl中配置的实体,也就是表格。clert的意思是,每次导入数据时,会先清除以前老的数据,可以不选择。选择execute执行。就会连接数据库,将数据导入在solr中

     

    里面也有刷新按钮,当数据很大时,可以导入一会,刷新看看导入的情况

     

    下面是java代码对solr的操作:

    jar引入:

    <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-solrj</artifactId>
        <version>7.5.0</version>
    </dependency>

     

     

     

    import org.apache.solr.client.solrj.SolrClient;
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.SolrServerException;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    import org.apache.solr.client.solrj.response.QueryResponse;
    import org.apache.solr.client.solrj.response.UpdateResponse;
    import org.apache.solr.common.SolrInputDocument;
    import org.junit.Test;
    
    import java.io.IOException;
    import java.sql.*;
    import java.util.HashMap;
    import java.util.Map;
    
    public class SolrConnect {
    
        public String baseUrl = "http://localhost:8081/solr/iscreamv2";
        public final SolrClient server = new HttpSolrClient.Builder(baseUrl).build();
    
    //查询,solr默认是只查固定行数据,往后就不查了,可以设置。这样就是有多少查询多少数据出来
    
        //Query
        @Test
        public void QueryTest() throws IOException, SolrServerException {
            SolrQuery query = new SolrQuery("ophone:123abc123");
    
            //        设置从哪里->哪里查
            //                query.setStart(0);
            //                query.setRows(10000);
    
            //        默认solr只查10行,设置吐出来的最多纪录
            query.set("rows", Integer.MAX_VALUE);
            //        System.out.println("Max Result= "+Integer.MAX_VALUE);
            QueryResponse resp = server.query(query);
            System.out.println("solr Result Number= "+resp.getResults().size());
            System.out.println("solr Result Time= " + resp.getQTime());
            System.out.println("solr Result Time= " + resp.getElapsedTime());
        }
    
        //add
        @Test
        public void addTest() throws IOException, SolrServerException {
            SolrClient solr = new HttpSolrClient.Builder(baseUrl).build();
            SolrInputDocument document = new SolrInputDocument();
            document.addField("id", "123456789");
            document.addField("name", "MyIScream");
            document.addField("content", "solr是个一个Apache搜索引擎");
            solr.add(document);
            solr.commit();
        }
    
    
        //delete
        @Test
        public void deleteTest() throws SolrServerException, IOException {
            SolrClient solr = new HttpSolrClient.Builder(baseUrl).build();
            UpdateResponse ur = solr.deleteById("123456789");    //id  按id删除
            UpdateResponse c = solr.commit();
            System.out.println(c);
        }
    
        //update
        @Test
        public void updateSTest() throws SolrServerException, IOException {
            SolrClient solrServer = new HttpSolrClient.Builder(baseUrl).build();
            SolrInputDocument solrInputDocument = new SolrInputDocument();
            //唯一标识 id
            solrInputDocument.addField("id", "71333674-9403-439a-9af0-75b0c20149f0");
    
            //更新字段1
            Map<String, String > operation = new HashMap();
            operation.put("set", "54");
           //更新字段2
            Map<String, String > operation1 = new HashMap();
            operation1.put("set", "55");
    
            //添加要更新的字段,添加map进行,一个map一个字段,添加进行进行改动
            solrInputDocument.addField("eid",operation);
            solrInputDocument.addField("longtime",operation1);
    
            solrServer.add(solrInputDocument);
            solrServer.commit();
        }
    
    
    update改的表,没办法一次就改完,每个字段一个map录入进去进行改变
    
        @Test
        public void getConnection() throws SQLException {
            Connection root = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test?charactorEncoding=utf-8&serverTimezone=UTC",
                    "root",
                    "514236");
            Statement statement = root.createStatement();
            long sys = System.currentTimeMillis();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM test_1mil_data WHERE ophone='123abc123'");
            resultSet.last();
            System.out.println(resultSet.getRow());
            System.out.println("jdbc耗时: "+(System.currentTimeMillis()-sys));
        }
    }

     

    查询但个效率比较:

    jdbc1.3s

    solr 300ms

    返回20w个数据比较:

    jdbc:3s

    solr:8s

    solr查询只花700ms,8s-700ms就是整个传输和读取的过程。传输比较耗时,查询比较快

     

    此处为1千万行测试数据

     

    里面含有,对solr的增删改查,常用的是查询,比较麻烦的是改

    展开全文
  • solr 使用

    2013-11-25 21:11:45
    数据导入 java -jar post.jar *.xml  java -Ddata=args -jar post.jar '42'  java -Ddata=stdin -jar post.jar  java -Durl=http://localhost:8983/solr/update/csv -Dtype=text/csv -jar post.jar  *.

    solr 中文博客

    http://blog.chenlb.com


    数据导入  

    java -jar post.jar *.xml
      java -Ddata=args -jar post.jar '<delete><id>42</id></delete>'
      java -Ddata=stdin -jar post.jar < hd.xml
      java -Durl=http://localhost:8983/solr/update/csv -Dtype=text/csv -jar post.jar


     *.csv
      java -Durl=http://localhost:8983/solr/update/json -Dtype=application/json -jar
     post.jar *.json
      java -Durl=http://localhost:8983/solr/update/extract?literal.id=a -Dtype=appli
    cation/pdf -jar post.jar a.pdf
    Other options controlled by System Properties include the Solr
    URL to POST to, the Content-Type of the data, whether a commit
    or optimize should be executed, and whether the response should
    be written to STDOUT. These are the defaults for all System Properties:
      -Ddata=files
      -Dtype=application/xml
      -Durl=http://localhost:8983/solr/update
      -Dcommit=yes
      -Doptimize=no
      -Dout=no

    展开全文
  • solr使用和原理

    2015-12-07 09:14:58
    solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署
  • Solr使用记录

    2018-10-12 22:22:44
    Solr使用记录 Solr介绍: &nbsp;&nbsp;&nbsp;&nbsp;Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置...

    Solr使用记录
    Solr介绍:
        Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

    Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

    Solr与Lucene的区别:
        Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
         Solr的目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。

    Solr整合tomcat:
    步骤一:创建一个文件夹,将tomacat以及Solr放入,再创建一个solrhome目录.

    步骤二:将solr-4.10.3  -> example ->solr中的全部文件复制到solrhome目录中

    步骤三:将solr-4.10.3  -> example ->webapps中的solr.war复制到tomcat的webapps目录,并解压

    注意:解压完成后,一定要删除solr.war,否则启动时,tomcat会自动解压solr.war,覆盖掉solr文件夹

    步骤四:将solr-4.10.3  -> example ->lib ->ext文件夹下的所有jar包复制到tomcat中solr -> WEB-INF -> lib中

    步骤五:打开tomcat中的 solr -> WEB-INF -> web.xml,将标签的注释打开。

    注意保存。

    步骤六:打开tomcat -> bin -> startup.bat,启动tomcat

    步骤七:运行tomcat,查看是否有错误信息,如果没有错误信息。即可访问 solr后台

    扩展:配置中文分词器(IKAnalyzer)
        在solr安装完成后,默认的分词器,都是标准分词器。标准分词器对中文的支持极差,所以我们需要自行配置中文分词器。配置步骤如下:

    准备工作:将IKAnalyzer的jar包复制到 WEB-INF下的lib中。再将配置文件复制到WEB-INF下的classes中,如果没有classes目录,需要自行创建。

    第一步、打开 solrhome -> collection1 -> conf -> schema.xml。

    第二步、在schema.xml中末尾配置。(位置随意,只要标签不胡乱嵌套即可)

    <fieldType name="text_ik" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>
    

    第三步、在schema.xml中使用 text_ik 配置域类型。(这里的text_it为你配置的IKAnalyzer分词器的name属性值)



    作者:GodBbb
    来源:CSDN
    原文:https://blog.csdn.net/qq1031893936/article/details/80229339?utm_source=copy
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Solr使用入门指南

    千次阅读 2016-01-08 17:06:55
    Solr使用入门指南

    由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择:

    1. 基于Lucene自己进行封装实现站内搜索。工作量及扩展性都较大,不采用。

    2. 调用Google、Baidu的API实现站内搜索。同第三方搜索引擎绑定太死,无法满足后期业务扩展需要,暂时不采用。

    3. 基于Compass+Lucene实现站内搜索。适合于对数据库驱动的应用数据进行索引,尤其是替代传统的like ‘%expression%’来实现对varchar或clob等字段的索引,对于实现站内搜索是一种值得采纳的方案。但在分布式处理、接口封装上尚需要自己进行一定程度的封装,暂时不采用。

    4. 基于Solr实现站内搜索。封装及扩展性较好,提供了较为完备的解决方案,因此在门户社区中采用此方案,后期加入Compass方案。

     

    1、 Solr简介

    Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。


    2、 Tomcat下Solr安装配置
    由于Solr基于java开发,因此Solr在windows及Linux都能较好部署使用,但由于Solr提供了一些用于测试及管理、维护较为方便的shell脚本,因此在生产部署时候建议安装在Linux上,测试时候可以在windows使用。

     

    下面以Linux下安装配置Solr进行说明,windows与此类似。
    wget http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.zip
    unzip apache-tomcat-6.0.16.zip
    mv apache-tomcat-6.0.16 /opt/tomcat
    chmod 755 /opt/tomcat/bin/*
    wget http://apache.mirror.phpchina.com/lucene/solr/1.2/apache-solr-1.2.0.tgz
    tar zxvf apache-solr-1.2.0.tgz

    Solr的安装配置最为麻烦的是对solr.solr.home的理解和配置,主要有三种

     

    基于当前路径的方式 
    cp apache-solr-1.2.0/dist/apache-solr-1.2.0.war /opt/tomcat/webapps/solr.war
    mkdir /opt/solr-tomcat
    cp -r apache-solr-1.2.0/example/solr/ /opt/solr-tomcat/
    cd /opt/solr-tomcat
    /opt/tomcat/bin/startup.sh

    由于在此种情况下(没有设定solr.solr.home环境变量或JNDI的情况下),Solr查找./solr,因此在启动时候需要切换到/opt/solr-tomcat

     

    基于环境变量solr.solr.home
    在当前用户的环境变量中(.bash_profile)或在/opt/tomcat/catalina.sh中添加如下环境变量
    export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr-tomcat/solr"

    基于JNDI配置 
    mkdir –p /opt/tomcat/conf/Catalina/localhost
    touch /opt/tomcat/conf/Catalina/localhost/solr.xml ,内容如下:

     

    Xml代码 复制代码
    1. <Context docBase="/opt/tomcat/webapps/solr.war" debug="0" crossContext="true" >  
    2.   <Environment name="solr/home" type="java.lang.String" value="/opt/solr-tomcat/solr" override="true" />  
    3. </Context>  

     

    访问solr管理界面 http://ip:port/solr


    3、 Solr原理 

    Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询。在 Solr 中,用户通过向部署在servlet 容器中的 Solr Web 应用程序发送 HTTP 请求来启动索引和搜索。Solr 接受请求,确定要使用的适当SolrRequestHandler,然后处理请求。通过 HTTP 以同样的方式返回响应。默认配置返回Solr 的标准 XML 响应,也可以配置Solr 的备用响应格式。

    可以向 Solr 索引 servlet 传递四个不同的索引请求:
    add/update 允许向 Solr 添加文档或更新文档。直到提交后才能搜索到这些添加和更新。
    commit 告诉 Solr,应该使上次提交以来所做的所有更改都可以搜索到。
    optimize 重构 Lucene 的文件以改进搜索性能。索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程。
    delete 可以通过 id 或查询来指定。按 id 删除将删除具有指定 id 的文档;按查询删除将删除查询返回的所有文档。 

    一个典型的Add请求报文

    Xml代码 复制代码
    1. <add>  
    2.   <doc>  
    3.     <field name="id">TWINX2048-3200PRO</field>  
    4.     <field name="name">CORSAIR  XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail</field>  
    5.     <field name="manu">Corsair Microsystems Inc.</field>  
    6.     <field name="cat">electronics</field>  
    7.     <field name="cat">memory</field>  
    8.     <field name="features">CAS latency 22-3-3-6 timing, 2.75v, unbuffered, heat-spreader</field>  
    9.     <field name="price">185</field>  
    10.     <field name="popularity">5</field>  
    11.     <field name="inStock">true</field>  
    12.   </doc>  
    13.   <doc>  
    14.     <field name="id">VS1GB400C3</field>  
    15.     <field name="name">CORSAIR ValueSelect 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - Retail</field>  
    16.     <field name="manu">Corsair Microsystems Inc.</field>  
    17.     <field name="cat">electronics</field>  
    18.     <field name="cat">memory</field>  
    19.     <field name="price">74.99</field>  
    20.     <field name="popularity">7</field>  
    21.     <field name="inStock">true</field>  
    22.   </doc>  
    23. </add> 

    一个典型的搜索结果报文:

    Xml代码 复制代码
    1. <response>  
    2.     <lst name="responseHeader">  
    3.         <int name="status">0</int>  
    4.         <int name="QTime">6</int>  
    5.         <lst name="params">  
    6.             <str name="rows">10</str>  
    7.             <str name="start">0</str>  
    8.             <str name="fl">*,score</str>  
    9.             <str name="hl">true</str>  
    10.             <str name="q">content:"faceted browsing"</str>  
    11.         </lst>  
    12.     </lst>  
    13.   
    14.     <result name="response" numFound="1" start="0" maxScore="1.058217">  
    15.         <doc>  
    16.             <float name="score">1.058217</float>  
    17.             <arr name="all">  
    18.                 <str>http://localhost/myBlog/solr-rocks-again.html</str>  
    19.                 <str>Solr is Great</str>  
    20.                 <str>solr,lucene,enterprise,search,greatness</str>  
    21.                 <str>Solr has some really great features, like faceted browsing and replication</str>  
    22.             </arr>  
    23.             <arr name="content">  
    24.                 <str>Solr has some really great features, like faceted browsing and replication</str>  
    25.             </arr>  
    26.             <date name="creationDate">2007-01-07T05:04:00.000Z</date>  
    27.             <arr name="keywords">  
    28.                 <str>solr,lucene,enterprise,search,greatness</str>  
    29.             </arr>  
    30.             <int name="rating">8</int>  
    31.             <str name="title">Solr is Great</str>  
    32.             <str name="url">http://localhost/myBlog/solr-rocks-again.html</str>  
    33.         </doc>  
    34.     </result>  
    35.   
    36.     <lst name="highlighting">  
    37.         <lst name="http://localhost/myBlog/solr-rocks-again.html">  
    38.             <arr name="content">  
    39.                 <str>Solr has some really great features, like <em>faceted</em>  
    40.                 <em>browsing</em> and replication</str>  
    41.             </arr>  
    42.         </lst>  
    43.     </lst>  
    44. </response>  

    关于solr的详细使用说明,请参考
    http://wiki.apache.org/solr/FrontPage

    4、 Solr测试使用 

    Solr的安装包包含了相关的测试样例,路径在apache-solr-1.2.0/example/exampledocs

    1. 使用shell脚本(curl)测试Solr的操作:
    cd apache-solr-1.2.0/example/exampledocs
    vi post.sh,根据tomcat的ip、port修改URL变量的值URL=http://localhost:8080/solr/update
    ./post.sh *.xml                 # 

    2. 使用Solr的java 包测试Solr的操作:
    查看帮助:java -jar post.jar –help
    提交测试数据:
    java -Durl=http://localhost:8080/solr/update -Ddata=files -jar post.jar  *.xml     

    下面以增加索引字段liangchuan、url为例,说明一下Solr中索引命令的使用

    1) 修改solr的schema,配置需要索引字段的说明:
    vi /opt/solr-tomcat/solr/conf/schema.xml ,在<fields>中增加如下内容

    Xml代码 复制代码
    1. <field name="liangchuan"  type="string" indexed="true" stored="true"/>  
    2. <field name="url"  type="string" indexed="true" stored="true"/>  
    1. <field name="liangchuan"  type="string" indexed="true" stored="true"/>  
    2. <field name="url"  type="string" indexed="true" stored="true"/>  


    2) 创建增加索引请求的xml测试文件
    touch /root/apache-solr-1.2.0/example/exampledocs/liangchuan.xml,内容如下:

    Xml代码 复制代码
    1. <add>  
    2.   <doc>  
    3.     <field name="id">liangchuan000</field>  
    4.     <field name="name">Solr, the Enterprise Search Server</field>  
    5.     <field name="manu">Apache Software Foundation</field>  
    6.     <field name="liangchuan">liangchuan's solr "hello,world" test</field>  
    7.     <field name="url">http://www.google.com</field>  
    8.   </doc>  
    9. </add>  

    3) 提交索引请求
    cd apache-solr-1.2.0/example/exampledocs
    ./post.sh liangchuan.xml

    4) 查询
    通过solr的管理员界面http://localhost:8080/solr/admin查询
    或通过curl 测试:
    export URL="http://localhost:8080/solr/select/"
    curl "$URL?indent=on&q=liangchuan&fl=*,score"

    5、Solr查询条件参数说明
    参数     描述     示例
    q    

    Solr 中用来搜索的查询。可以通过追加一个分号和已索引且未进行断词的字段的名称来包含排序信息。默认的排序是 score desc,指按记分降序排序。    
    q=myField:Java AND otherField:developerWorks; date asc
    此查询搜索指定的两个字段并根据一个日期字段对结果进行排序。

     

    start     将初始偏移量指定到结果集中。可用于对结果进行分页。默认值为 0。     
    start=15
    返回从第 15 个结果开始的结果。

     

    rows     返回文档的最大数目。默认值为 10。     rows=25

     

    fq     提供一个可选的筛选器查询。查询结果被限制为仅搜索筛选器查询返回的结果。筛选过的查询由 Solr 进行缓存。它们对提高复杂查询的速度非常有用。
    任何可以用 q 参数传递的有效查询,排序信息除外。

     

    hl     当 hl=true 时,在查询响应中醒目显示片段。默认为 false。参看醒目显示参数上的 Solr Wiki 部分可以查看更多选项     hl=true

     

    fl     作为逗号分隔的列表指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。“score” 指还应返回记分。     
    *,score

    其中关于Solr查询相关的参数详细的信息请参看:
    http://wiki.apache.org/solr/CommonQueryParameters

    Solr的查询条件参数q的格式与Lucene相同,具体参看:
    http://lucene.apache.org/java/docs/queryparsersyntax.html

    支持一下吆 请收藏一下:很好

    6、 在门户社区中solr使用模式 
    在门户社区中需要使用solr,可采用如下模式:

     

    对原有系统已有的数据或需要索引的数据量较大的情况 
    直接采用通过http方式调用solr的接口方式,效率较差,采用solr本身对csv 的支持(http://wiki.apache.org/solr/UpdateCSV
    ),将数据导出为csv格式,然后调用solr的csv接口http://localhost:8080/solr/update/csv

    对系统新增的数据 
    先将需要索引查询的数据组装成xml格式,然后使用httpclient 将数据提交到solr 的http接口,例如   
    http://localhost:8080/solr/update

    也可以参考post.jar中的SimplePostTool的实现。
    http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/util/SimplePostTool.java?view=co

     

    中文分词
    采用庖丁解牛作为solr(Lucene)缺省的中文分词方案
    项目库:http://code.google.com/p/paoding/

    Google groups:http://groups.google.com/group/paoding
    Javaeye的groups:http://analysis.group.javaeye.com/


    与nutch的集成使用
    http://blog.foofactory.fi/2007/02/online-indexing-integrating-nutch-with.html

    嵌入式Solr
    http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer

    分布式索引
    http://wiki.apache.org/solr/CollectionDistribution


    7、参考资料
    http://wiki.apache.org/solr/
    http://www.ibm.com/developerworks/cn/java/j-solr1/
    http://www.ibm.com/developerworks/cn/java/j-solr2/
    http://www.xml.com/pub/a/2006/08/09/solr-indexing-xml-with-lucene-andrest.html?page=1
    http://lucene.apache.org/java/docs/queryparsersyntax.html
    http://www.blogjava.net/RongHao/archive/2007/11/06/158621.html

    展开全文
  • 文章目录solr使用五(solr命令合集)场景设计启动创建core添加Field向Core中添加数据修改数据查询数据删除数据删除Core关闭、重启solr总结附录 solr使用五(solr命令合集) 将完全使用命令行完整演示solr的整个使用过程 ...
  • Solr使用:1.Solr的安装部署 1.解压Tomcat到一个目录 E:\Solr2016-05-032.下载solr,并将压缩包中的solr-5.3.1解压到一个目录3.将 E:\Solr2016-05-03\solr-5.3.1\server\solr-webapp目录下的webapp文件夹复制到 E:\...
  • Apache Solr 使用

    2011-12-14 10:38:04
    Apache Solr 使用 2011-01-17 11:56  本文介绍的内容是根据 Apache Solr 版本 1.3.0.2009.02.07.10.59.58 编写的,如果你在使用一个不同版本的Solr,请参看伴随发布版中的文档。    ● ...
  • 它通过使用类似REST的HTTP API,这就确保你能从几乎任何编程语言来使用solr。2 solr安装下载安装jdk,需要1.8及以上版本,并设置JAVA_HOME下载solr安装包:https://lucene.apache.org/solr/到官网点击Download下载...
  • 一、Solr简介 1、Solr是什么? 1.1就是一个war项目 2、自己的项目如何Solr进行交互? 2.1特定的API叫做SolrJ(底层其实就是...4、Solr作用(什么时候使用Solr) 4.1大量数据检索时使用Solr,能提升检索效率...
  • solr使用复合字段查询,发现没有和solr数据库的匹配的结果,这是因为查询字段没有分词. 看之前旧版的ik-analyzer-solr,发现在managed-schema的配置不一样. 新版原文是: 3.配置Solr的managed-schema,添加ik分词器,...
  • solr 使用edismax来控制评分 如何控制评分 如果设置了sort字段,那么将会按照sort字段的顺序返回结果。 如果没有设置sort字段,那么将会根据相关度打分来排序。也就是说,相关度更高的排在前面。 如何来定制适合...
  • Solr-----7、Solr使用DataImportHandler导入数据库数据
  • Solr使用初探——SolrJ的使用(2011-08-04 18:00:22) 转载▼ 标签: solr lucene 搜索引擎 杂谈 分类: 技术文章 二、SolrJ的使用 SolrJ覆盖了solr的全部功能,下面将自己在实际开发...
  • Solr使用初探——Solr的安装环境与配置 (2011-08-04 17:51:48) 转载▼ 标签: solr lucene 搜索引擎 分类: 技术文章 Solr是一个apache名下很好用的开源索引、搜索工具,网上的资料虽多但很杂,笔者花...
  • solr使用整理

    千次阅读 2008-10-26 17:14:00
    使用     一、启动服务: java -jar start.jar 后:打开 http://localhost:8983/solr/admin/ 二、生成索引     java -jar post.jar solr.xml monitor.xml   上面的 xml 文件是需要被索引的文件...
  • Solr-----8、Solr使用JNDI配置DataImportHandler的数据源
  • 它通过使用类似REST的HTTP API,这就确保你能从几乎任何编程语言来使用solr。2 solr安装下载安装jdk,需要1.8及以上版本,并设置JAVA_HOME下载solr安装包:https://lucene.apache.org/solr/到官网点击Download下载...
  • 6.搜索之路——solr使用

    万次阅读 2016-08-07 00:29:44
    6.搜索之路——solr使用  solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,...
  • solr 使用安装介绍

    千次阅读 2009-12-17 14:17:00
    不错的 solr 使用安装介绍 前些日子做了个 apache solr 应用的入门介绍,也在博客记录下,方便新手看看。以搜索论坛帖子为示例。1、先下载 Apache Solr 1.3 ...
  • solr使用入门

    2017-09-15 14:28:38
    solr 企业站内搜索技术选型 在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定...
  • Solr 使用小结

    2018-03-22 09:42:59
    Solr 数据源 安装solr ..../bin/solr start 启动solr ...测试所以没有将solr部署到tomcat上 ...在solr文档中找到solr创建核心的方法。..../bin/solr create -c ...使用上述命令创建新的核心(具体还是需要参考solr官方文...
  • Solr使用 配置安装 部署环境 系统环境:centos Jdk:1.7 Tomcat:7 Solr版本:5.2 部署solr服务器 1.下载solr-5.2 wget http://mirrors.hust.edu.cn/apache/lucene/solr/5.2.0/solr-5.2.0.tgz 2.解压solr-...
  • Solr使用函数排序

    2019-09-13 09:22:57
    电子商务搜索引擎http://demo.rivues.com:195中有一个功能是按照销售量排序,销售量的数据是实时统计的,检索的时候有一个功能是按照销售量来排序,这个功能用到了Solr的函数排序...Solr 4.0还有一个比较有用的功能...
  • 由于 Solr 默认的 Query Parser 生成的 Query ...一年半前有篇关于 solr 使用自定义的 QueryParser 的文章。使用这个方法在 solr 中可以用自己的 Query Parser。按照那篇文章,分别扩展:QParserPlugin、QParser、So
  • solr使用流程

    千次阅读 2017-03-22 14:56:15
    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的...
  • solr使用进阶

    2016-09-19 18:41:20
    快速入门主要讲的是solr管理界面,并且已经利用给好的例子做简单的搜索。 接下要做的是利用数据库是数据来建议搜索。 索引mysql的数据 要怎么做? 官方文档也没有详细的说明,主要是修改solrconfig.xml和schema.xml...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,869
精华内容 3,947
关键字:

solr使用