热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

solr6.3.0AdminUI查询中各参数的含义

2019独角兽企业重金招聘Python工程师标准本文内容是在官方文档给出的gettingstarted的Demo下进行的。如何启动运行官方demogettingstarte

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本文内容是在官方文档给出的gettingstarted的Demo下进行的。如何启动运行官方demo"gettingstarted"可在公众号中历史文章中查看solr6.3.0的安装部署

AdminUI 中各参数及其含义

qt = query type

指定那个类型来处理查询请求,一般不用指定,默认是standard

 

q = query

查询字符串,必须指定,查询结果根据该参数指定的查询词被打分

 

fq = filter query 

过滤查询,在q的基础上进行过滤,不影响打分

 

sort

根据查询结果的打分或者其他指明的特点进行排序。有两种排序升序(asc),降序(desc),不区分大小写。允许根据多个field排序,用逗号分隔开。

NB:  排序的field必须是索引的field,同时field对应的type不能是multiValued的

 

start 

结果从那一条记录开始查询

 

rows

 查询多少条记录

 

fl

定义返回记录的field

 

df

默认查找的字段。solr6.3.0默认df=_text_

通过solr的adminUI 中可以看到如下配置

070506_ALyi_915970.png

在server/solr/gettingstarted/conf/managed-schema

文件最后一行有这样一行配置

默认所有的field都被copy 到_text_中。

用处:比如一个电商的搜索api调用方大部分只期望搜索产品名称则df=product_name

 

wt

指明返回数据格式。默认是json

 

indent

返回结果是否缩进。默认indent=on开启,一般调试json,php,phps,ruby输出才有必要用这个参数

 

debugQuery

查询结果中包含调试信息。explain info中包含每一条查询结果的信息

 

更多详细信息参考: http://www.solr.cc/blog/?p=1018

 

 

NB:solr官方的例子中,对price进行排序时需要修改server/solr/gettingstarted/conf/managed-schema文件中 

改为

使用solr AdminUI进行查询

http://192.168.1.23:8983/solr/gettingstarted/select?df=_text_&fl=name,price,features,score&fq=manu:Belkin&indent=on&q=ipod&sort=price%20asc&wt=json

查询结果如图所示

相关性排序

solr与其他关系型数据库和NoSQL的区别之一,是solr对返回的结果进行了查询词的相关性排序,默认按照相关性降序排列。score越高,查询词和文档的相关性就越高。

 

以gettingstarted为例,使用不同的参数,进行如下三次查询:

1

query : iPod

fl:name,features,score

 

返回的结果按照score降序排列。直观的看,第一条数据,搜索词出现3次,剩余的两条数据ipod只出现了一次。

 

score的值不是固定不变的。它仅用于lucence内部做相关性排序使用,查询词不同,分数也不同。

 

每一次查询时,每一个文档会被计算出一个和查询词匹配的分数,分数越高,文档和查询词越相关。

query : iPod power

fl:name,features,score

 

查询结果与上次相同,但是我们注意到,打分不同

3

query : iPod power^2

fl:name,features,score

 

给power这个查询词设置一个2的权重(默认都是1)。这意味着,power这个词比ipod这个词重要了一倍。现在看查询结果,虽然查询来还是那3条结果,但是顺序已经发生了变化。

 

翻页和排序

 

想一想,你自己平时在淘宝上会翻到第几页,99%的人按照某个条件拍个序,然后从前几个总找一个(不过也真有一页一页往后翻的)。所以我们在做搜索时,真的不需要返回全部的结果集。

 

olr使用rows和start两个属性,进行分页。

 

在客户端发送一个查询请求给solr,solr经过一系列的处理之后,去索引库中找,将找到的结果返回给solr,solr在经过一系列的处理,返回给客户端。执行过程如下:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

所以:返回的结果越多,重新组织需要的时间就越长

 

--排序--

 

在上面的图例中我们看到可以根据相关性(score)进行排序,可以根据价格进行排序。排序和分页基本上一起使用(原文用的hand in hand意境好美),因为排序顺序决定分页的结果。

 

如果没有指定排序,solr会根据score来进行排序。如果两个文档的打分相同,他们会根据lucene的一个内部ID来排序。这个排序的值会随着索引

的变化而变化,所以这个排序不可靠。

更多信息请关注微信公众号:金沙数据

 

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1

 

 

 


转:https://my.oschina.net/yimiyan/blog/801828



推荐阅读
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 本文探讨了利用Python实现高效语音识别技术的方法。通过使用先进的语音处理库和算法,本文详细介绍了如何构建一个准确且高效的语音识别系统。提供的代码示例和实验结果展示了该方法在实际应用中的优越性能。相关文件可从以下链接下载:链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ,提取码:p57s。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文深入解析了Spring Cloud路由网关Zuul的核心功能及其典型应用场景。通过对方志朋老师教材的学习和实践,详细探讨了Zuul在微服务架构中的重要作用,包括请求路由、过滤器链管理以及服务动态扩展等关键特性。同时,结合实际案例,展示了Zuul在高并发和复杂业务场景下的应用优势,为读者提供了全面的技术参考。 ... [详细]
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 如何使用mysql_nd:Python连接MySQL数据库的优雅指南
    无论是进行机器学习、Web开发还是爬虫项目,数据库操作都是必不可少的一环。本文将详细介绍如何使用Python通过 `mysql_nd` 库与 MySQL 数据库进行高效连接和数据交互。内容涵盖以下几个方面: ... [详细]
author-avatar
夕阳何处寻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有