solr添加索引注意事项

1、在给json文件添加索引时,注意json的value值,不能为null,所以在生成json文件的时候,会对于值为null的属性,因特殊处理,否则会抛出NullPointerException。

2、为json数据添加索引的方式及不同

a、在Solr Admin Web页面中添加,一条或多天json记录,应使用下面的方式

{"id":1,"name":"name1"},
{"id":2,"name":"name2"}

b、通过post.jar为json文件添加索引,文件中的json格式都应该为下面的方式

[{"id":1,"name":"name1"},{"id":2,"name":"name2"}]

3、使用SolrJ,利用getBeans获取对象时,对象的属性名应该与managed-schema.xml中field的名称一致,对象属性上利用@Field修饰,此外还需要有参的构造函数以及无参的构造函数。

4、Solr查询是URL过长时,可以利用SolrQuery的new SolrQuery(url,method)的方法将查询方法设置为post请求,此外查询的长度限制可能跟Solr的Solrconfig.xml中的属性配置有关,以及与tomcat的server.xml的请求参数长度配置有关。

5、solr使用分词法时,当内容为英文时,是按照是按照空格,标点,stopword等来分词,当内容为为中文时,使用的是中文词汇进行分割

6、solr查询的使用,使用q=name:content,如果内容是英文,则会查询出包含内容的所有值,若内容是中文,则会进行分词查找,找出所有包含分词结果的内容,如果想要精确查找,使用q=name:"content"(注意引号)

7、copyFiled应用场景

比如现在你要查询包涵"Java"的博客,那么你肯定要查内容,标题是否包含Java,但是solr不能像SQL那样,where tittle like '%Java%'  or  content like '%Java%'.,这个时候copyField就派上用场了, 定义一个新字段,将title和content 复制到这个新字段,索引的时候,直接从这个新字段查询,这样就达到目地了。这便是copyField的典型应用场景

8、sechema.xml -- 先匹配filed,filed不存在,在匹配dynamicField

9、通过solrAPI更改一些文档的属性,这样就无需重启,也能进行字段更新,但是要对已索引的文档重新索引的话,必须先删除原先的索引,重新建立,而且需要重启,才能生效。


猜你喜欢

转载自blog.csdn.net/Danny_tll/article/details/79858771