solr字段类型
类
说明
BinaryField
二进制数据
BoolField
布尔值,其中’t’/’T’/’1’都是true
CollationFiled
支持Unicode排序
CurrencyField
支持货币和汇率
DateRangeFiled
支持索引date range
ExternamFiledFiled
pull磁盘上的文件
EnumField
支持定义枚举值
ICUCollationField
支持Unicode排序
LatLonType
支持经度、纬度坐标
PointType
支持任意的n维向量,可以用于检索CAD图数据
PreAnalyzedField
用于支持序列化数据
RandomSortField
结果随机排序
SpatialRecursivePrefixTreeFieldType
支持经纬度字符串或WKT格式
StrField
字符串,不分词,并且小于32k
TextField
文本字段,既分词又索引
TrieDateField
日期类型字段
TrieDoubleField
双精度类型字段
TrieField
使用时必须指定”type”属性(integer,long,double,date)
TrieFloatField
单精度类型字段
TrieIntField
整数字段
TrieLongField
长整形字段
UUIDField
Universally Unique Identifier通用唯一识别码
Date fields
precisionStep="6" positionIncrementGap="0"/>
当你要用到日期的范围查询时,最好用这样的数据类型,而且在提交文档时日期的格式有特别要求,日期里有T,Z字符,比如有个timestamp字段设置为tdate类型了,那么提交时应该
...
2012-05-22T09:30:22Z
...
不需要查询精确到分秒级别时
2016-05-22T09:30:22Z/HOUR
域类型的定义说明(fieldType)
一个solr自带的域类型
打开自己配置的SolrCore的collection1\conf\schema.xml
自定义Field(域)
打开自己配置的SolrCore的collection1\conf\schema.xml
添加以下内容,就可以使用这个域了
copy域
运用领域:
name:nikeT恤
描述:一件运动T恤
当需要只搜索一次两个域的任意内容时,
就能把两个东西都搜索出来的时候
就把多个域放到一个拷贝域里面
查询
过滤条件查询
product_price:[1 TO 10]
过滤查询价格从1到10的商品
也可以使用“*”表示无限,例如:
20以上:product_price:[20 TO *]
20以下:product_price:[* TO 20]
降序升序查询
product_price desc
product_price asc
更新/修改
{"id":"change.me","title":"change.me"}
删除
根据id删除
change.me
### 条件删除
id:change.me
多值字段
必须先定义 multiValued="true" 的类型的域才可以插入多值
{"id":"change.me","title":"6666,777,888"}
定义中文分词器
1 把IKAnalyzer2012FF_u1.jar拷贝到\webapps\solr\WEB-INF\lib下
2 把ik分词器的3个配置文件拷贝到webapps\solr\WEB-INF\classes下
3 在schema.xml中添加自定义分词器
导入
批量导入SQL的数据
1.在自定义的solrcore\collection1\lib下面添加dataimport插件依赖的jar和sql的驱动jar
2.根据数据库字段,字段类型等,在中定义字段在solr中存在的形态,比如是否索引,是否分词等
3.在collection1\conf\下的solrconfig.xml文件,添加一个requestHandler
class="org.apache.solr.handler.dataimport.DataImportHandler">
data-config.xml
4.创建一个data-config.xml,保存到collection1\conf\目录下
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solr"
user="root"
password="root"/>
5.重启Tomcat,进入solr主页 ,选中SolrCore,就是collection1,查看DataImport点击Execute执行导入,导入后可在query里面查看
solr实例(solrcore)截图和solr服务器截图
一个solrhome可以包含多个solecore就是多个collection1
solrj
solrj是java客户端访问solr服务的工具,可以在java代码中实现搜索
参考自己写的一个demo: