搜索引擎solr搜索详解mike提供的函数_第1页
搜索引擎solr搜索详解mike提供的函数_第2页
搜索引擎solr搜索详解mike提供的函数_第3页
搜索引擎solr搜索详解mike提供的函数_第4页
搜索引擎solr搜索详解mike提供的函数_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 Solr 函数1.1 Solr 提供的函数1.1.1 数据转换函数1.1.2 数学函数函数语法说明abs(x)取绝对值acos(x)取 x 的反余弦asin(x)取 x 的反正弦atan(x)atan2(x,y)返回直角坐标(x,y)转换为极坐标的方位角cbrt(x)x 的立方根ceil(x)向上取整cos(x)函数语法说明def(x,y)Default,若 x 存在,则返回 x,否则返回 yfield(fieldName)取单值字段的值map(x,max,tartget) map(x,max,else)如果 x 落在在 min、max 之间,返回,否则返回 x 或 else(当指定了 x

2、 时)ms(time2,time1) ms(time1)ms()返回两个时间相隔的毫秒数 time2-time1 time2 没有则为 now返回当前时间的毫秒数 (1970/1/1)ord(fieldName)对于一个字段,它所有的值都将会按照字典顺序排列,这个函数返回你要查询的那个特定的值在这个顺序中的 (从 1开始)。这个字段,必须是非 multiValued 的,当没有值存在的时候, 将返回 0 。 示例: 一个字段 x 包含的词项有 (apple,banana,pear),field(x) 包含 apple 的文档将返回 1rord(fieldName)ord 的逆序scale(x,

3、number1,number2)基于所有文档中 x 的最大值和最小值,介于 number1 与number2 之间,对每个文档的 x 值进行缩放。top(x)从顶层 IndexReader 取值1.1.3 相关性函数函数语法说明docfreq(fieldName,term)fieldName 字段包含词项 term 的文档数(文档频次)idf(fieldName,value)字的逆文档频次maxdoc()索引中的文档数,包含尚未的删除文档norm(fieldName)fieldName 字段在索引中的范数numdocs()索引中的文档数,不包含尚未的删除文档query(subquery,def

4、aultScore)与 subquery 匹配的文档得分, defaultScores 是不匹配subquery 的文档得分sumtotaltermfreq(field) sttf(field)索引中该字段被索引的分词数termfreq(fieldName,term)词项在文档的该字段中出现的频次cosh(x)x 的双曲线余弦值deg(x)将 x 的弧度转为度数div(x,y)x 除以 ye()exp(x)以自然常数e 为底的指数函数,即 e 的 x 次方floor(x)向下取整hypo(x,y)sqrt(x2+y2) 返回直角三角形的斜边长linear(m,x,b)f(x)=m*x + b

5、返回线性函数的值ln(x)x 的自然对数log(x)pi()(x,y)x 的 y 次方product(x,n) mul(x,n)求乘积rad(x)转弧度recip(x,m,a,b)a/(m*x + b) 互逆函数实现。其中,m、a、b 是常量,x 是变量或者一个函数。当 a=b,并且 x=0 的时候,这个函数的最大值是 1,值的大小随着 x 的增大而减小。r(x)将 x 舍入为最近的整数sin(x)sinh(x)x 的双曲正弦值sqrt(x)x 的平方根sub(x,y)x-ysum(x,n)add(x,n)tan(x)正切tanh(x)双曲正切示例: doc1:(fieldX:A B C) a

6、nd doc2:(fieldX:A A A A):docFreq(fieldX:A) = 2 (A appears in 2 docs)freq(doc1, fieldX:A) = 4 (A appears 4 times in doc 2)totalTermFreq(fieldX:A) = 5 (A appears 5 times across all docs)sumTotalTermFreq(fieldX) = 7 in fieldX, there are 5 As, 1 B, 1 C利用函数查询和相关性函数,就可以自定义相关性计算模型。函数1.1.41.1.5 距离函数函数语法说明di

7、st(er,x1,n1,x2,n2)根据er 定义的距离度量,计算 2 个向量/点之间的距离。最常见的er 值包括:0 稀疏计算1 曼哈顿距离2得距离函数语法说明and(x,y)x、y 都为true,则为 trueexists(x)若 x 有值返回 trueif(x,trueValue,falseValue)x 有 trueValue 与 falseValue 两个值,若 x 为 true,则返回 trueValuenot(x)or(x,y)xor(x,y)tf(fieldName,term)字段中词项的 tf 因子值totaltermfreq(fieldName,term) ttf(fiel

8、dName,term)词项在指定字段中的总词频(所有文档)示例及说明1、constant:支持有小数点的常量,例如,1.5,查询表达式就是:_val_:1.52、fieldvalue,这个函数将会返回 numeric field 的值,这个域必须是 indexd的,非 multiValued 的。格式很简单,就是该域的名字。如果这个域中没有这样的值,那么将会返回 0。3、ord,对于一个域,它所有的值都将会按照字典顺序排列,这个函数返回你要查询的那个特定的值在这个顺序中的当没有值存在的时候,将返回 0。这个域,必须是非 multiValued 的,例如:某个特定的域只能去三个值,“apple”

9、、“banana”、“pear”,那么ord(“apple”)=1,ord(“banana”)=2,ord(“pear”)=3.需要注意的是,ord()这个函数,依赖于值在索引中的位置,所以当有文档被删除、或者添加的时候,ord()的值就会发生变化。当你使用 MultiSearcher的时候,这个值也就是不定的了。4、rord,这个函数将会返回与 ord 相对应的倒排序的。格式: rord(myIndexedField).无穷无限范数(向量中的最大值)sqedist(x1,n1,x2,n2)相比 dist(2,.) 这个函数消除了平方根计算,如果只是进行相关性排序或相关度调整,而不需要精确的距

10、离计算,它更有效。hsin(radiusInRM,isDegrees,x1,y1,x2,y2)在球面上计算两点的距离geohash(lon)计算 的 geohash 值,geohash 是地理位置的特殊字段串编码。该函数可以为ghhsin 函数提供输入参数Ghhsin(radiusInKM,geohash1,geohash2)对两个geohash 值使用半正失函数strdist(s1,s2,distType) strdist(s1,s2,”ngram”,ngramSize)计算两个字符串的字符相似度或间隔距离,介于 0(不相似)与 1(完全相同)之间。distTypede 的可取值为:jwja

11、ro-winkler 距离edit编辑距离ngram编辑距离的 ngram 版本geodist(sfield,lon) geodist(sfield,pt) geodist()返回地球上两点间的距离,一个通过空间字段 sfield指定,另一个通过坐标指定。5、sum,这个函数的意思就显而易见啦,它就是表示“和”。格式:sum(x,1)sum(x,y)sum(sqrt(x),log(y),z,0.5)6、product,product(x,y,.)将会返回多个函数的乘积。格式:product(x,2)product(x,y)7、div,div(x,y)表示 x 除以 y 的值格式:div(1,x

12、)div(sum(x,100),max(y,1)8、,表示幂值。(x,y) =xy。格式:(x,0.5) 表示开方(x,log(y)9、abs,abs(x)将返回表达式的绝对值格式:abs(-5)abs(x)10、log,log(x)将会返回基数为 10,x 的对数格式: log(x)log(sum(x,100)11、sqrt,sqrt(x) 返回 一个数的平方根格式:sqrt(2)sqrt(sum(x,100)12、map,如果 min=x=0 的时候,这个函数的最大值是 1,值的大小随着x的增大而减小。例如:recip(rord(creationDate),1,1000,1000)17、max,max(x,c)将会返回一个函数和一个常量之间的最大值。例如:max(myfield,0)版本的函数请参考官网:t-function1.2 自定义函数Solr 中实现自定义函数非常简单。步骤如下:1、编写一个函数类,这个类继承 ValueSource 类,保证在搜索索引中的每个文档都返回一个计算值。2、编写 Valu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论