一、DownLoad 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
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服务开启后你就可以看到如下的页面:
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 > 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 > 0 and barcode='${dih.delta.id}'" deltaQuery="select barcode as id from iyb_commodity where rank > 0 and (updated_dt > '${dih.last_index_time}' or created_dt > '${dih.last_index_time}')" deletedPkQuery="select barcode as id from iyb_commodity where rank <= 0 and updated_dt > '${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 页面了。