在电商平台中搜索是非常重要的功能,主要包括有搜索词类目导航、自动提示和搜索排序功能
自动提示如下图显示的,可以根据搜索词自动进行提示,并在列表中显示推荐的搜索词的document数量
类目导航如下图所示,比如在搜索框中搜索“牛奶”,则把相关的类目和当前类目对应的属性显示出来
下面就以上几种功能做示例讲解。
1、搜索排序
搜索功能中比较复杂的是文档的打分排序,solr中的打分规则继承了lucene中的相关的打分规则,这里通过solr的dismax查询解析器来支持复杂的打分
在打分的时候,会考虑以下因素,
搜索关键字匹配某些字段的打分比其他的字段要高(qf^)
对于某些字段,搜索字符串的密集度(phrase)的打分中占的比重(pf^)
其他复杂规则计算,比如销售量、价格、卖家等级等等都可以作为考虑的因素,影响打分(bf)
http://10.1.1.58:8080/solr/select?defType=dismax&qf=name^100 subject ^1 &q=sony mp3&pf=name^100 subject ^1&q.op=OR&bf=sum(recip(ms(NOW,last_modified),3.16e-11,1,1),div(1000,price))^100
这个查询的含义是,在name和subject中搜索关键字sony mp3,name和subject在字段查询中的比重分别为100、1(qf=name^100subject ^1);并且这两个字段phrase的打分为
pf=name^100 subject ^1,也就是name占的比重大一些;其他还参考产品的价格和商品更新时间(bf=sum(recip(ms(NOW,last_modified),3.16e-11,1,1),div(1000,price))^100)
2、自动提示facet
http://10.1.1.58:8080/solr/select?q=*:*&rows=0&facet=true&facet.field=name_autocomplete&facet.prefix=电视
根据电视的分词用facet进行自动的提示,提示的是分词
3、facet分类导航
用户在搜索框中进行搜索,下方会有分类导航,分类导航是一个树型的结构,比如
类别可以由属性,比如,牛奶粉的属性有‘品牌’、‘适用阶段’、‘适用年龄’、‘包装方式’、‘源产地’等
用户在搜索框中输入‘牛奶’,搜索引擎导航到'牛奶粉'这个类别下,并自动显示牛奶粉相关的属性,相关实现和算法有很多,下面的方法可以达到这个效果
分类导航可以参考搜索结果的头一条进行,比如得分最高的第一个document属于’牛奶粉‘这个类别,那么导航显示自然就导航到这个类别上;并且相关的属性就采用牛奶粉这个类别的属性,比如‘品牌’、‘适用阶段’、‘适用年龄’、‘包装方式’、‘源产地’,类别和属性的对应关系可以存储到其他地方。
分类导航的树形结构可以采用facet.pivot来实现
类别属性的对应的值,采用基本的facet来实现
http://10.1.1.58:8080/solr/select?q=name:牛奶&fq=category1:奶粉&fq=category2:牛奶粉&rows=0&facet=true&facet.field=logo&facet.field=property1&facet.field=property2&facet.field=property3&facet.mincount=1
相关推荐
以下是一个简单的示例,展示了如何在查询中使用自定义函数: ```sql q=商品名称:some_query&defType=func&qf=sales^2.0 reviews^1.5 _score^0.5 ``` 在这个例子中,`sales`和`reviews`是商品的字段,分别代表销量和...
在这个压缩包中,名为"TeduStore"的文件夹很可能包含了整个电商平台的源代码,供学习和实践。 首先,让我们深入理解SSM框架: 1. **Spring**:这是一个全面的Java应用程序开发框架,提供了依赖注入(DI)和面向切...
通过以上步骤,我们可以成功地部署Solr并在Java应用程序中使用SolrJ进行数据索引和搜索。Solr的强大功能和灵活性使其成为构建高效搜索系统的一个优秀选择。无论是对于企业级应用还是个人项目,Solr都是一个值得深入...
Java 后台代码在电商平台中的应用是广泛的,涵盖了用户管理、订单处理、商品展示、支付系统、库存控制等多个核心模块。下面将详细讲解这些模块的关键知识点。 1. **用户管理**:这部分通常涉及到用户注册、登录、...
总的来说,"solr在SSM框架中使用(支持中文分词查询)"这个项目展示了如何在Java Web环境中集成Solr,利用SSM框架的优势,实现高效的全文检索功能,尤其是对中文文本的支持,这在处理中文信息量大的网站或应用中显得...
这个库提供了一套API,使得与Solr的通信更加简便,可能在本示例中也有使用。 9. **分布式搜索**:Solr 5.5.4版本支持分布式部署,这意味着多个Solr服务器可以协同工作,提高性能和可用性。如果示例涉及到分布式搜索...
在使用Solr(Cloudera)时,创建Collection是基本的操作之一。Collection是Solr中的数据存储单元,相当于关系数据库中的表。 ##### 创建路径与实例 1. **创建路径**:在根目录下创建一个用于存放Solr实例的目录,...
3. **配置Solr的中文解析器**:在Solr中使用IK Analyzer,需要在solrconfig.xml和schema.xml这两个配置文件中进行设置。首先,需要在solrconfig.xml中指定查询分析器和索引分析器为IK Analyzer;然后,在schema.xml...
在本文中,我们将详细介绍Solr的安装和使用过程。 一、安装Solr 首先,我们需要下载Solr的安装包。这里我们使用的是Solr 1.3版本。下载地址分别是: * Windows版本:...
压缩包内含有solr+ik如何配置的详细介绍以及solr+ik的包,省去了自己去找地址下载的麻烦,经测试使用完全可以在电商电商项目中实现全文检索
重新启动Solr服务后,我们可以在Solr管理界面中添加新核心,指定其名称和实例目录。一旦成功,可以在Core Selector中选择新创建的核心,并提交文档以建立索引。最后,通过Query功能查询新添加的索引信息,验证部署和...
在Java中使用Apache Solr,主要依赖于SolrJ库,这是一个专门用于与Solr进行交互的Java客户端。本文将详细介绍如何在Java项目中集成SolrJ,并通过实例代码展示如何进行索引管理和查询操作。 首先,我们需要在项目的`...
在这个“solr京东案例”中,我们很可能会发现一系列关于如何在京东这样的大型电商平台上应用Solr进行数据索引和检索的实际示例。 项目资料通常会涵盖以下几个方面: 1. **Solr安装与配置**:这可能包括在不同的...
开发过程中使用了IDEA集成开发环境、Maven项目管理和Git版本控制系统。在数据库的选择上,使用了轻量级的MySQL数据库,相比其他如oracle的大型数据库,MySQL在硬件要求和配置上更为简单。服务器使用了Tomcat,作为...
在本教程中,将学习如何使用SpringMVC进行前端页面与后端服务之间的交互处理。 1. **SpringMVC架构原理**: - 请求接收:前端发送请求到服务器。 - 控制器(Controller):接收请求并调用相应的业务逻辑处理方法...
总的来说,Solr-9.0.0是一个强大且灵活的搜索平台,适用于需要大量数据搜索和分析的场景,如电商网站的商品搜索、新闻网站的内容检索、企业内部的文档搜索等。通过深入理解和熟练使用Solr,你可以为你的应用程序提供...
标题和描述提到的是针对Solr 5.5和Solr 6.0版本的IK分词器支持的相关资料,这意味着这些资源可能包括配置文件、文档、示例代码或者更新日志,帮助用户在这些特定版本的Solr中集成和优化IK分词器。 首先,让我们来看...
在Solr 4.0版本中,`solr.xml`是Solr的核心配置文件,它定义了Solr实例的基本设置,如数据目录、核心加载策略、请求处理器以及SolrCloud的相关配置。通过查看此文件的源代码,你可以了解如何配置多个Solr核心,如何...
Solr是一个高性能、可伸缩的企业级搜索引擎平台,它可以作为一个独立的服务运行,并且提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索功能到现有的应用程序中。Solr的主要特点包括高度可配置...