solr笔记



document、fieldType、field、analyzer、tokenizer、filter


solrj
SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/dbSearch");
ClientUtils.escapeQueryChars(keyWord);
SolrQuery parameters = new SolrQuery();
parameters.set("q", q);
parameters.set("fl", "*,score");
solrServer.query(parameters);


q:关键字;
fl:显示哪些字段;
hl:是否高亮;
hl.fl:高亮哪些field
qf:权重
defType:edismax


1、下载solr.war放到webapp下;
拷贝solr-4.10.0\example\lib\ext下的jar到tomcat/webapps/solr/WEB-INF/lib目录下;
拷贝solr-4.10.0\example\resources中的log4j.properties到tomcat/webapps/solr/WEB-INF/classes目录下;
2、新建solrhome;
拷贝multiCore中solr.xml、core0至solrhome;
拷贝dbSearch至solrhome;
修改solr.xml中的host、hostport为tomcat的值;
3、指定solr/home
tomcat/webapps/solr/WEB-INF/web.xml中添加:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/solrhome01</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>


4、catalina.sh启动中加入参数
tomcat1
set JAVA_OPTS=-Dbootstrap_conf=true -DnumShards=2 -DzkHost=zookeeper3ip:2181,zookeeper2ip:2181,zookeeper1ip:2181
tomcat2、tomcat3、tomcat4
set JAVA_OPTS=-DzkHost=zookeeper3ip:2181,zookeeper2ip:2181,zookeeper1ip:2181


5、下载zookeeper
把zoo_sample.xml改为zoo.xml;
修改clientPort、dataDir、dataLogDir;
新增server.id=host:port:port;
dataDir中新建myid文件,设置id;


server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,
而这个端口就是用来执行选举时服务器相互通信的端口。
如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
6、schema.xml
<fieldType name="n_gram" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="100"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="name" type="n_gram" indexed="true" stored="true" multiValued="false"/>
<uniqueKey>id</uniqueKey>
<defaultSearchField>name</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>


7、solrconfig.xml
<requestHandler name="/dataImport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">myconfig/db-data-config.xml</str>
</lst>
</requestHandler>
8、<dataConfig>
<!--dataSource driver="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@d0pshrm.dbdev.paic.com.cn:1526:d0pshrm" user="mlearndata" password="paic4321"/-->
<!--query="select mc.id as id, mc.name as name from solr_course mc order by mc.updated_date desc"-->
<dataSource name="ds-ZHILIAO" jndiName="java:comp/env/jdbc/DS_ZHINIAO" batch-size="1000"/>
<document>
<entity name="item" transformer="ClobTransformer"
query="select mc.course_id as id,
mc.course_name as name,
mpv.property_value as specialty_company,
mc.introduction as introduction,
mc.keyword as keyword,
vm.tag_name as tag_name,
decode(mcw.ware_type, '0', '图文', '1', '图文+视频', '2', '游戏', '3', '纯视频', '4', '交互式动漫', '') as ware_type
from mln_course mc
left outer join mln_property_value mpv on mc.source_id =
mpv.id_property_value
and mpv.id_property_type =
'specialty_company'
left outer join (select course_id, wm_concat(tag_name) as tag_name
from mln_vm_course_tag
where tag_publish = 'Y' and dimension_publish = 'Y'
group by course_id) vm on mc.course_id = vm.course_id
left outer join mln_courseware mcw on mc.id_t_mln_course = mcw.course_id
where mc.is_publish = '1'">
<field column="ID" name="id" />
<field column="NAME" name="name" />
<field column="SPECIALTY_COMPANY" name="specialty_company" />
<field column="INTRODUCTION" name="introduction" />
<field column="KEYWORD" name="keyword" />
<field column="TAG_NAME" name="tag_name" clob="true"/>
<field column="WARE_TYPE" name="ware_type" />
</entity>
</document>
</dataConfig>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值