Solr 查询参数之 defType
defType 参数用于选择一个查询解析器来处理查询的请求,如:defType=dismax。在 Solr 1.3 版本以后,默认的查询解析器是 dismax。
defType 参数用于选择一个查询解析器来处理查询的请求,如:defType=dismax。在 Solr 1.3 版本以后,默认的查询解析器是 dismax。
Solr 支持多种查询解析,给搜索引擎开发人员提供灵活的查询解析。Solr 中主要包含这几个查询解析器:标准查询解析器、DisMax 查询解析器,扩展 DisMax 查询解析器(eDisMax)。
Class |
描述 |
BCDIntField | 二进制整形字段 |
BCDLongField | 二进制长整形字段 |
BCDStrField | 二进制字符型字段 |
BinaryField | 二进制数据 |
BoolField | 包含true或者false,值的第一个字符如果是1、t、T均表示true,其他为false |
ByteField | 一个字节数据 |
DateField | 一个精确到毫秒的时间值 |
DoubleField | |
ExternalFileField | 从硬盘读取文件作为该字段的值 |
FloatField | |
IntField | |
Location | 方位搜索用到,存经纬度值 |
LongField | |
Point | N维点搜索,在蓝图或者CAD图中使用 |
RandomSortField | 不包含值,当查询时按这种类型的字段排序时会产生随机排序。使用该特性时需要是一个动态字段 |
ShortField | |
StrField | UTF-8编码的字符串或Unicode |
TextField | 文本类型,一般包含多个单词或汉字 |
UUIDField | 唯一识别码,单传入的值是“NEW”时,Solr将为其创建1个UUID值 |
字段类型定义在 schema.xml 的 types 这个元素里头。这里是一个字段类型定义的例子
<fieldType name="textTight"</p> <p>positionIncrementGap="100" ></p> <p><analyzer></p> <p><tokenizer/></p> <p><filter</p> <p>synonyms="synonyms.txt" ignoreCase="true" expand="false"/></p> <p><filter</p> <p>generateWordParts="0" generateNumberParts="0"</p> <p>catenateWords="1" catenateNumbers="1" catenateAll="0"/></p> <p><filter/></p> <p><filter</p> <p>language="English" protected="protwords.txt"/></p> <p><filter/><br /> </analyzer></p> <p></fieldType>
以上例子的第一行包含了字段类型名称,textTight,和字段的处理的实现类,solr.TextField。这一实现类用于保证字段可以被正确的处理。在这个文件里,一些事项类采用了缩写,solr.TextField其实就是 org.apache.solr.schema.TextField
Solr 的一个字段类型包括四个部分:
搜索群里经常遇到有刚入门的朋友问一下 Solr 比较常用功能的使用方法,如高亮、集成中文切词、和现有项目集成、怎么使用查询返回的 XML 数据、如何做 Suggest、如何跟现有的应用整合、以及如何使用DIH。。。确实,使用 Solr 快速搭建一个搜索时,首先遇到的就是这些问题,搞定这些问题,一个搜索就出来了。看到大家问这些问题时,很想说暂停下现在翻译的事,去写一些这方面快速使用 Solr 的文章,一则方便大家快速搭建搜索应用,二则大家问这些问题时,可以直接贴网址给大家,能很快吸引很多初学者来这里。后来想想,还是不要这么操之过急,我自己应该先把基础打好,踏实的翻译 Solr 基础功能的文章,把这些基础的东西搞明白了,快速实现一些功能会更加快捷,高手都是在练基本功,乔丹在热身时总在练投篮,其他球员总是在飞来飞去的灌篮。所以我想我也应该继续练基本功,继续学习和翻译 Solr 基础功能。
这个数据源经常使用 XPathEntityProcessor 来从 file:// 或 http:// 位置来获取内容。
public class URLDataSource extends DataSource<Reader>
这里是一个例子:
<dataSource name="a"<br /> type="URLDataSource"<br /> baseUrl="http://host:port/"<br /> encoding="UTF-8"<br /> connectionTimeout="5000"<br /> readTimeout="10000"/>
这个 URLDataSource 接受以下可选参数:
baseURL:
数据源地址
connectionTimeout:
连接超时,默认值是 5 秒
encoding:
编码
readTimeout:
读取超时,默认值是 10 秒
该数据源使用起来跟 URLDataSource 类似,但是这个数据源主要是从磁盘的文件中获取内容。和 URLDataSource 唯一不同的是,访问磁盘文件时需要制定磁盘路径,如下所示:
public class FileDataSource extends DataSource<Reader>
这个数据源接受两个可选参数:
basePath:
用于指定绝对路径前缀
encoding:
文件字符集
Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress 闽ICP备18020075号-1