首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Solr搜索问题笔记(一)

Solr搜索问题笔记(一)

作者头像
我是攻城师
发布2018-05-11 18:01:48
8330
发布2018-05-11 18:01:48
举报
文章被收录于专栏:我是攻城师我是攻城师

笔记三个小问题: (1):使用solrj添加索引时,主要有两种方法, 第一种是直接使用solrinputDoucument的方法添加。 第二种是面向对象的形式将一份索引映射成一个Bean对象封装。 当使用第二种时,需要注意一个问题,如果一个对象里,有基本类型int,float,long,double等,那么建议使用其包装类型,why? 因为基本类型,在类实例化时候,是会初始化赋值的,这样一来,无论你添加的某条数据(Document)里,有没有这个field,那么它都会生成一个值为初始化的field,这样以来,在排序时候就可能会出现问题,比如按照某个成立日期升序,有些记录里的没有这个字的,而你又用了基本类型,那么添加到索引里面,就会出现一个成立日期为0的数据,这样以来,排序自然就排到了第一位,所以需要根据业务,进行适当调整。 引用类型的字段,如果为null,则此条记录不会生成filed (2):在排序时,对于那些没有值的field,我们应该如何控制其排序方式? 在Lucene里面,主要有两种方式, 第一,将丢失字段排在第一位。 第二,将丢失字段排在末尾。 对应到solr里面,支持String,Boolean,int,double,float,long类型缺失字段,排序方式,配置示例如下:

Java代码

  1. <!-- 缺失字段排最后一位 -->
  2. <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
  3. <!-- 缺失字段排第一位 -->
  4. <fieldType name="boolean" class="solr.BoolField" sortMissingLast="false"/>

(3):如何在linux终端,执行curl命令清空某个core索引:

Java代码

  1. curl http://localhost:8983/solr/corename/update?commit=true -d '<delete><query>*:*</query></delete>'
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是攻城师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档