Solr Jetty 部署入门之: Dataimport

一、DownLoad solr:

  • http://lucene.apache.org/solr/ 

  • 最新版本的会比较好一点,例子也比较清晰。

  • solr-4.10.4-src.tgz  solr-4.10.4tgz  solr-4.10.4.zip(5.2的dataimport没成功改用4.10.4)

  • 我们下载的应该是基于jetty服务器的,不需要再拷贝到tomcat上发布了。而且在Windows或是Linux上都可以使用。

二、Running Solr

  1. Start the Server  和常用的命令

         windows下打开 bin 目录 shift + 鼠标右键 可以在此处打开命令窗口,执行

solr start            -- 开启服务
solr start -f         --在后台启动
solr start -p ****    --以某端口启动
solr stop -p 8983     --停止solr必须指定端口号
solr -e teachproducts --你可以启动一个和例子一样的配置的solr服务
solr create -c <name> --创建一个不是和例子一样的配置的solr服务
solr -help            --帮助菜单

       solr服务开启后你就可以看到如下的页面:

Solr Jetty 部署入门之: Dataimport_第1张图片

  2.  初次使用Dataimport

       当我们创建一个solr实例后,发现Dataimport是无法使用的。需要做如下三件事,可以使Dataimport运行:

  • 打开solrconfig.xml,将 <dataDir>${solr.data.dir:}</dataDir> 填完整。比如我的solr实例对应的data位置为E:\solr-5.2.0\server\solr\myt\data ,   <dataDir>${solr.data.dir:E:\solr-5.2.0\server\solr\myt\data}</dataDir>

  •     --仿照实例 追加  dataimport 的 requestHandler  
        <requestHandler name="/dataimport" class="solr.DataImportHandler">
            <lst name="defaults">
            <str name="config">solr-data-config.xml</str>
            </lst>
         </requestHandler>
  • 添加jar包:在实例目录下新建 lib 文件夹,把 需要的额外的jar包放进去,比如 :

    solr-dataimporthandler-4.10.4  (负责建立索引的,) sqljdbc-4.0.2206.100  (连接数据库用的)

  •  solr-data-config.xml内容如下:

  • <dataConfig>
        <dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
                name="jdbc/myt"
                password=""
                type="JdbcDataSource"
                url="jdbc:sqlserver://localhost:1433;DatabaseName="
                username=""/>
        <document name="commodity">
            <entity name="item"
                query="select c.barcode as id,c.sid,c.barcode,c.title,c.is_circle,c.can_buy_now,c.solr_filter_type,cat.site_type,
                    c.price,c.rank,c.bought_count,c.view_count,c.small_pic as md5,
                    c.timelines,c.keywords,b.sid brand_sid,b.title brand_title,b.synonyms brand_synonyms,cat.category_code,cat.name category_name,
                    c.commodity_status,c.created_dt from iyb_commodity c 
                    left join iyb_brand b on c.brand_sid=b.sid 
                    left join iyb_category cat on cat.sid=c.category_sid 
                    where c.rank &gt; 0"
    
                deltaImportQuery="select c.barcode as id,c.sid,c.barcode,c.title,c.is_circle,c.solr_filter_type,cat.site_type,c.price,c.can_buy_now,c.rank,c.bought_count,c.view_count,c.small_pic as md5,
                                  c.timelines,c.keywords,b.sid brand_sid,b.title brand_title,b.synonyms brand_synonyms,cat.category_code,cat.name category_name,c.commodity_status,c.created_dt 
                                  from iyb_commodity c 
                                  left join iyb_brand b on c.brand_sid=b.sid 
                                  left join iyb_category cat on cat.sid=c.category_sid 
                                 where c.rank &gt; 0 and barcode='${dih.delta.id}'"
    
                deltaQuery="select barcode as id from iyb_commodity  
                            where rank &gt; 0 
                            and (updated_dt &gt; '${dih.last_index_time}' or created_dt &gt; '${dih.last_index_time}')"
    
                deletedPkQuery="select barcode as id from iyb_commodity  
                                where rank &lt;= 0
                                and updated_dt &gt; '${dih.last_index_time}' 
                                union all
                                     select DISTINCT '${dataimporter.request.deleteById}' as id from iyb_commodity 
                                     where not EXISTS(select 1 from iyb_commodity where barcode='${dataimporter.request.deleteById}') ">
            </entity>
        </document>
    </dataConfig>

这之后重启 solr 应该就可以进入 Dataimport 页面了。




你可能感兴趣的:(Solr Jetty 部署入门之: Dataimport)