1)constant:支持有小数点的常量; 例如:1.5 ;SolrQuerySyntax:_val_:1.5
2)fieldvalue:这个函数将会返回numeric field的值,这个域必须是indexd的,非multiValued的。格式很简单,就是该域的名字。如果这个域中没有这样的值,那么将会返回0。
3)ord:对于一个域,它所有的值都将会按照字典顺序排列,这个函数返回你要查询的那个特定的值在这个顺序中的排名。这个域,必须是非multiValued的,当没有值存在的时候,将返回0。例如:某个特定的域只能去三个值,“apple”、“banana”、“pear”,那么ord(“apple”)=1,ord(“banana”)=2,ord(“pear”)=3.需要注意的是,ord()这个函数,依赖于值在索引中的位置,所以当有文档被删除、或者添加的时候,ord()的值就会发生变化。当你使用MultiSearcher的时候,这个值也就是不定的了。
4)rord:这个函数将会返回与ord相对应的倒排序的排名。
格式: rord(myIndexedField)。
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)、div(sum(x,100),max(y,1))
8)pow:pow表示幂值。pow(x,y) =x^y。例如:pow(x,0.5) 表示开方pow(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:如果 x>=min,且x<=max,那么map(x,min,max,target)=target.如果 x不在[min,max]这个区间内,那么map(x,min,max,target)=x.
格式:map(x,0,0,1)
13)Scale:scale(x,minTarget,maxTarget) 这个函数将会把x的值限制在[minTarget,maxTarget]范围内。
14)query :query(subquery,default)将会返回给定subquery的分数,如果subquery与文档不匹配,那么将会返回默认值。任何的查询类型都是受支持的。可以通过引用的方式,也可以直接指定查询串。
例子:q=product(popularity, query({!dismax v='solr rocks'}) 将会返回popularity和通过dismax 查询得到的分数的乘积。
q=product(popularity, query($qq)&qq={!dismax}solr rocks 跟上一个例子的效果是一样的。不过这里使用的是引用的方式
q=product(popularity, query($qq,0.1)&qq={!dismax}solr rocks 在前一个例子的基础上又加了一个默认值。
15) linear: inear(x,m,c)表示 m*x+c ,其中m和c都是常量,x是一个变量也可以是一个函数。例如: linear(x,2,4)=2*x+4.
16)Recip:recip(x,m,a,b)=a/(m*x+b)其中,m、a、b是常量,x是变量或者一个函数。当a=b,并且x>=0的时候,这个函数的最大值是1,值的大小随着x的增大而减小。例如:recip(rord(creationDate),1,1000,1000)
17)Max: max(x,c)将会返回一个函数和一个常量之间的最大值。
例如:max(myfield,0)
相关推荐
用户可以自定义查询解析器、过滤器、排序函数、结果组策略等,以满足特定需求。 7. **分析链**:Solr的分析链允许用户自定义输入数据的预处理过程,如分词、标准化和过滤,这在处理不同语言和文本格式时非常有用。 ...
总结来说,通过Solr的函数查询和自定义插件,我们可以灵活地构建电商搜索的自定义打分机制。这不仅可以提升搜索结果的相关性,还能更好地满足业务需求,比如强调热门商品、促销商品或者高评价商品。在实际操作中,...
solr functionquery函数查询功能强大,但字符串函数比较缺乏,该示例是contain示例,表示值中包含传入的字符串即返回1 否则返回0,可用于solr查询中如果某个字段包含动态传入的值在排名优先。有其他查询排序需求...
5. **搜索功能**:掌握如何构建查询语句,使用查询解析器和查询函数,以及进行结果排序和分组。 6. **分布式搜索**:Solr4.9支持多节点部署,了解如何配置和管理分布式环境,以提高搜索性能和容错性。 7. **JAR...
Solr 支持插件机制,允许开发者自定义查询解析器、函数、过滤器等,以满足特定的搜索需求。同时,可以使用 SolrCloud 模式实现分布式搜索,以支持更大规模的数据处理。 了解这些基础知识后,你就可以开始探索 Solr...
2. 函数查询 3. 地理位置查询 4. JSON Facet 章节四:Solr高级(下) 1. 深度分页 2. Solr Join查询 3. 相关度排序 4.Solr缓存 5.Spring Data Solr 章节五:综合案例,电商网站搜索页面 1.关键字搜索 2.搜索面板...
Solr提供丰富的查询语法,包括布尔运算、短语匹配、范围查询等,还支持自定义查询解析器和函数查询,以实现复杂的查询逻辑。 1.2.4 核心 在Solr中,每个独立的搜索服务实例被称为一个“核心”(Core),每个核心...
Solr 还允许通过插件机制进行扩展,可以定制分析器、查询解析器、排序函数等,以满足企业级应用的特殊需求。此外,SolrCloud 功能使得 Solr 具备分布式搜索和集群管理能力,支持数据的自动复制和故障恢复,增强了...
6. **排序与评分**:除了基于相关性排序外,Solr还可以根据其他字段或自定义函数进行排序。同时,可以通过修改TF-IDF评分模型或者实现自定义评分函数来调整搜索结果的排名。 7. **分布式搜索**(SolrCloud):...
- **排序和评分**:根据相关性对搜索结果进行排序,可以自定义评分函数以优化结果展示。 - ** faceted search(分类浏览)**:提供基于属性的筛选和统计功能,方便用户细化搜索。 2. **Solr 4.10的分布式特性**:...
你也可以自定义评分函数,或者按其他字段进行排序。 3. **分布式搜索**:SOLR云(SolrCloud)提供了分布式部署和自动复制,以实现高可用性和水平扩展。 4. **实时搜索**:SOLR的实时索引功能允许在不重启服务的...
4.3 高级查询:使用函数查询、评分、过滤器、聚合等功能,实现复杂的查询需求。 4.4 集成到Web应用:通过SolrJ Java客户端库或RESTful API将Solr集成到Web应用程序中。 五、SolrCloud与分布式搜索 5.1 ZooKeeper...
7. **改进的Query解析**:Solr 7.6.0改进了查询语法,支持更复杂的查询构造,例如函数查询、地理位置查询和多字段查询。 8. **安全与权限控制**:Solr内置了Zookeeper为基础的权限控制机制,7.6.0版本中,安全配置...
高级知识部分包括:Solr的高级查询及其各种查询技巧,如函数查询、地理空间查询、Facet嵌套等;SolrJ、SolrCloud、Spring Data Solr的使用详解和工作原理;Solr的多种性能优化技巧,如索引的性能优化、缓存的性能 ...
2. **Solr核心库**:包含Solr的核心组件,如请求处理器、查询解析器、结果评分函数等。这些库扩展了Lucene的功能,使得Solr能够支持更复杂的查询语法、处理XML/JSON等多种数据格式,并提供分布式搜索能力。 3. **...
例如,它不支持JOIN操作,但提供了丰富的聚合函数和分组功能。 在实际应用中,你还需要考虑性能优化,如使用Solr的缓存机制、分页查询、查询过滤器(Filter Queries)等。同时,为了确保高可用性和可扩展性,可能...
此外,Solr还支持自定义评分函数,可以按照用户定义的策略进行排序,提升搜索结果的相关性。 3. **Faceted Search(分面搜索)**:Solr 7.5.0提供了强大的分面搜索功能,用户可以根据某个字段的值进行统计和筛选,...
同时,你可以调整查询参数以优化搜索性能,如使用缓存、设置评分函数等。 6. **扩展性与定制化**:Solr允许通过插件机制进行扩展,比如自定义查询解析器、过滤器、排序策略等,以满足特定的业务需求。此外,Solr还...
4. **排序(Sorting)**:根据指定的字段或函数对搜索结果进行排序。 5. **高亮显示(Highlighting)**:突出显示搜索结果中的匹配部分。 6. ** faceting(分面)**:提供基于属性的统计信息,帮助用户过滤和导航。 ...