请教怎么对solr查询结果进行自定义排序

请教怎么对solr查询结果进行自定义排序,第1张

缺省solr就是按照score desc进行排序的,至于为何你的查询结果和数据不一样,那是因为solr和数据库的索引方式不同引起的,不知道你的schema怎么定义的,solr中主要根据doc中term出现的频率也叫TF(term frequency)来判断文档的价值,即如果一个单词在一个文档中出现的频率高则由于那些在很多不同文档中出现的单词的优先级。

创建数据库

选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。

在对象资源管理器窗口中展开服务器,然后选择数据库节点

右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。

执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。

在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。

切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到文件组页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。

还是按照自己的想法推测下吧,solr是一种分布式搜索引擎技术,主要基于全文检索技术。那么Baidu,Google肯定是基于这种技术的,这个可以肯定。至于淘宝,京东,苏宁易购这样的大型电子商务网站,我觉得应该也是基于全文检索技术——这样的话,应用solr这种分布式搜索引擎技术那就顺理成章了。京东和易购应该是solr,淘宝是不是我就不太清楚了(至少是类似技术吧)。。。

以后如果搞商业网站,高并发,高负载,复杂交互,安全性,用户体验——那也得多钻研这种技术了。毕竟数据库有连接上限,这个很蛋疼。

最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具。

这是一个系列,主题为:

- 语言

- web框架

- 应用服务器

- SQL数据访问工具

- SQL数据库

- 大数据

- 构建工具

- 云提供商

今天我们就要说说大数据。根据维基百科,大数据是数据集的一个广义的术语,并且该数据集是如此庞大和复杂,以致于传统的数据处理应用程序无法胜任。

在许多情况下,使用SQL数据库用于存储/检索数据就足够了。但在另一些情况下,要么SQL数据库规模不够,要么还有更好的工具。这一切都取决于使用情况。

现在让我们来讨论一下存储/处理数据用的不同的非SQL工具——NoSQL数据库,内存缓存,全文搜索引擎,实时流,图形数据库,等等。

MongoDB—— 一种流行的,跨平台的面向文档的数据库。

Elasticsearch——专为云而构建的分布式REST风格搜索引擎。

Cassandra——一个开源的分布式数据库管理系统,最初由Facebook开发,被设计用来处理横跨多个商用服务器的大量数据,提供了无单点故障的高度可用性。

Redis—— 一个开源的(BSD许可),内存数据结构存储,作为数据库、缓存和消息代理使用。

Hazelcast——基于Java的开源内存数据网格。

EHCache——一种被广泛使用的开源Java分布式缓存,用于通用缓存、Java EE和轻量级容器。

Hadoop——用Java编写的一个开源软件框架,用于分布式存储和对在计算机集群上的超大型数据集的分布式处理。

Solr——一个开源的企业搜索平台,用Java编写的,来自于Apache Lucene项目。

Spark——Apache Software Foundation中最活跃的项目,一个开源的集群计算框架。

Memcached—— 一个通用的分布式内存缓存系统。

Apache Hive——提供了Hadoop之上类似于SQL的层。

Apache Kafka—— 一个高通量、分布式的发布-订阅式消息系统,最初开发在LinkedIn上。Windows上脱离Cygwin运行Apache Kafka

Akka—— 一个工具包和运行时,用于在JVM上构建高度并行的、分布式的、有d性的消息驱动的应用程序。

HBase—— 一个开源的,非关系型的,分布式数据库,在谷歌的BigTable后建模,用Java编写,并运行在HDFS上。

Neo4j——用Java实现的开源图形数据库。

CouchBase——一个开源的、面向文档的分布式NoSQL数据库,特别为了交互式应用而优化。

Apache Storm——开源的分布式实时计算系统。

CouchDB——使用JSON来存储数据的面向文档的开源NoSQL数据库。

Oracle Coherence—— 一个内存的数据网格解决方案,通过提供快速访问常用数据的渠道,使得企业可预测地扩展关键任务应用程序。

Titan—— 一个可扩展的图形数据库,优化的目的在于存储和查询包含数千亿顶点和边的图形,分布在多机集群。

Amazon DynamoDB——一个快速、灵活、完全管理的NoSQL数据库服务,用于在任何规模需要一致的、个位数毫秒延迟的所有应用程序。

Amazon Kinesis—— 用于在AWS上的流数据的实时平台。

Datomic—— 一个用Clojure写的完全事务式的,支持云的,分布式数据库。

学习Java的同学注意了!!!

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:495273252  长按复制  我们一起学Java!

假设MySQL数据库有关数据库、表、字段定义等工作已经提前完成。这里介绍我这个测试用例所用的数据库情况:数据库和表名均为crawler,用户名root,密码admin。这里就不把sql语句列出来了,反正是测试。另外,因为Solr的解压路径以及Solr_HOME的路径每个人都是不一样的,所以以后关于Solr_HOME的路径,我都用$SOLR_HOME表示。

使用DataImportHandler导入并索引数据

配置$SOLR_HOME\collection1\conf\solrconfigxml

在<requestHandler name="/select" class="solrSearchHandler">前面上加上一个dataimport的处理的Handler,如图示:

其中,data-configxml文件用于定义solr和MySQL的映射关系,这里使用的而是相对路径,即跟solrconfigxml处于同一目录。因此要在$SOLR_HOME\collection1\conf目录下创建data-configxml文件

通过data-configxml完成Solr与MySQL数据库的映射,data-configxml文件内容如图所示:

修改schemaxml文件,因为这个文件是我们从压缩包中复制过来的,里面包括很多多余的数据,在这里我们只需要在该文件中定义与MySQL数据库表中相关的Field,去掉不相关的Field即可,但需要注意,有些Field还是需要保留的,如:_version_和text 这两个field要保留,其他的Field、CopyField删除即可:如图示。

上图中,我id的定义为int型,Solr中索引的主键默认是只支持type="string"字符串类型的。解决方法:修改同目录下的elevatexml,注释掉下面2行。

将mysql-connector-java-5126-binjar和solr-4103\dist\solr-dataimporthandler-4103jar复制到 D:\Solr\solr-4103\example\solr-webapp\webapp\WEB-INF\lib中。

开启tomcat进入Solr的Admin UI界面,在Core Selector中选择collection1,选择dataImport子菜单,如图所示。

完成设置后,点击Execute执行。

以上就是关于请教怎么对solr查询结果进行自定义排序全部的内容,包括:请教怎么对solr查询结果进行自定义排序、solr和什么nosql数据库搭配、淘宝和京东的搜索是用solr实现的么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10177791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存