Solr Jetty 部署入門之: Dataimport

1、DownLoad solr:

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

  • 最新版本的會比較好一點,例子也比較清晰。shell

  • 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上均可以使用。apache

2、Running Solr

  1. Start the Server  和經常使用的命令windows

         windows下打開 bin 目錄 shift + 鼠標右鍵 能夠在此處打開命令窗口,執行tomcat

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服務開啓後你就能夠看到以下的頁面:服務器

  2.  初次使用Dataimportsqlserver

       當咱們建立一個solr實例後,發現Dataimport是沒法使用的。須要作以下三件事,可使Dataimport運行:url

  • 打開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>spa

  •     --仿照實例 追加  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 頁面了。

相關文章
相關標籤/搜索