solr中functionQuery如何使用

介绍

今天就跟大家聊聊有关solr中functionQuery如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

,,,怎样使用函数查询,

,,,,这里主要有两种方法可以使用函数查询,这两种方法都是通过solr http接口的。

<李>

,,,,内嵌在正常的solr查询表达式中,即,将函数查询写在问这个参数中,这时候,我们使用_val_将函数与其他的查询加以区别。至于具体怎样使用,请读者留意下面的例子。

<李>

,,,,使用明确为函数查询的参数,比如说dismax中的男朋友(提高函数)这个参数只,注意:男朋友这个参数是可以接受多个函数查询的,它们之间用空格隔开,它们还可以带上权重,所以,当我们使用男朋友这个参数的时候,我们必须保证单个函数中是没有空格出现的,不然程序有可能会以为是两个函数。

,,,,,,,,,,,,,,,例如:,,q=dismax&男朋友=鞍碌?流行)^ 0.5,倒数(rord(价格),1,1000,1000)^ 0.3

,函数的格式(函数查询语法),,,,,,,,

,,,,,,,,目前,函数查询并不支持a + b这样的形式,我们得把它写成一个方法形式,这就是总和(a, b)。

,,可以利用的函数(可用函数)

,,,,,,,,,,常数

,,,,,,,,,,,,,,,,,,,,,支持有小数点的常量

,,,,,,,,,,,,,,,,,,,,,例如:1.5;

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,SolrQuerySyntax: _val_: 1.5

,,,,,,,,,,, fieldvalue

,,,,,,,,,,,,,,,,,,,,,,,这个函数将会返回数字字段的值,这个域必须是indexd的,非多值的。格式很简单,就是该域的名字。如果这个域中没有这样的值,那么将会返回0。

,,,,,,,,,,,,奥德

,,,,,,,,,,,,,,,,,,,,,对于一个域,它所有的值都将会按照字典顺序排列,这个函数返回你要查询的那个特定的值在这个顺序中的排名。这个域,必须是非多值的,当没有值存在的时候,将返回0。

,,,,,,,,,,,,,,例如:某个特定的域只能去三个值,“苹果”、“香蕉”,“梨”,那么奥德(“苹果”)=1,奥德(“香蕉”)=2,奥德(“梨”)=3 .

,,,,,,,,,,,,,,,需要注意的是,奥德()这个函数,依赖于值在索引中的位置,所以当有文档被删除,或者添加的时候,奥德()的值就会发生变化。当你使用MultiSearcher的时候,这个值也就是不定的了。

,,,,,,,,,,,rord

,,,,,,,,,,,,,,,,,,,,,这个函数将会返回与奥德相对应的倒排序的排名。

,,,,,,,,,,,,,,,,,,,,,格式:rord (myIndexedField)。

,,,,,,,,,,,,

,,,,,,,,,,,,,,,,,,,,,这个函数的意思就显而易见啦,它就是表示”和“啦。

,,,,,,,,,,,,,,,,,,,,,格式:sum (x, 1)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sum (x, y)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,总和(sqrt (x),日志(y), z, 0.5)

,,,,,,,,,,,产品

,,,,,,,,,,,,,,,,,,,,,,,产品(x, y,…)将会返回多个函数的乘积。

,,,,,,,,,,,,,,,,,,,,格式:产品(x, 2)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,产品(x, y)

,,,,,,,,,,,,div

,,,,,,,,,,,,,,,,,,,,,,div (x, y)表示x除以y的值

,,,,,,,,,,,,,,,,,,,,格式:div (x)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,null

solr中functionQuery如何使用