`
韩悠悠
  • 浏览: 833365 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

solr找到与查询结果相似的文档

    博客分类:
  • solr
 
阅读更多

找到与查询结果相似的文档:

http://localhost:8983/solr/select?q=name:edition&mlt=true&mlt.fl=name&mlt.mintf=1&mlt.mindf=1


mlt.fl:按照结果文档的哪一个field求相似。


mlt.mintf:结果文档中的本field的某一个词出现的tf大于此值,才以此词求相似。


mlt.mindf:通上,不过是df。


自定义的显示结果(非xml):

首先定义渲染器和名字:
<queryResponseWriter name="velocity" class="org.apache.solr. request.VelocityResponseWriter"/>
其次定义请求的处理器(包括显示的结果,行数,默认的查询域,查询的格式等等):<requestHandler name="/browse" class="solr.SearchHandler">
<lst name="defaults">
<str name="wt">velocity</str>
<str name="v.template">browse</str>
<str name="v.layout">layout</str>
<str name="title">Solr cookbook example</str>
<str name="defType">dismax</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
<str name="qf">name</str>
</lst>
</requestHandler>

---------------------------------
匹配相似(moreLikeThis)
他的作用是查找相似的document。

首先在 solrconfig.xml 中配置 MoreLikeThisHandler
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
</requestHandler>


然后我就可以请求 http://localhost:8080/solr/mlt?q=id:7&mlt.true&mlt.fl=name&mlt.mintf=1&mlt.mindf=1
上面请求的意思 查找 id 为 7 的 document ,然后返回与此 document 在 name 字段上相似的其他 document。需要注意的是 mlt.fl 中的 field 的 termVector=true 才有效果
<field name="name" termVector="true" .../>


当然 mlt.fl 也可以添加多个field ,用逗号隔开就行了

 

//相关搜索查询
		List relationList = new ArrayList();
		query = new SolrQuery();
		query.setQuery("title:"+ query_char.toString()+" AND type:2222");  
	        query.addField("title");  
	        query.setStart(0);  
	        query.setRows(10);
	        query.setParam("mlt", "true");
	        query.setParam("mlt.fl", "title");
	        query.setParam("mlt.mintf", "100");
	        query.setParam("mlt.mindf", "1");
	        try {
				QueryResponse response = server.query(query);
				SolrDocumentList docs = response.getResults();
				for (SolrDocument doc : docs) {
					Snaphost host = new Snaphost();
					System.out.println(doc.getFieldValue("title").toString());
					host.setKeyword(doc.getFieldValue("title").toString());
					relationList.add(host);
				}
			} catch (SolrServerException e) {
				e.printStackTrace();
			}

 

 

分享到:
评论

相关推荐

    solr7.5官方文档

    文档中解释了如何使用 Solr 的 MoreLikeThis 功能找到与给定文档相似的其他文档,这在推荐系统中非常有用。 #### 结果的分页 文档中提供了如何通过 Solr 实现搜索结果分页的方法,便于用户逐页浏览大量结果。 ###...

    solr 7 官方文档

    - **Caching**:Solr使用缓存机制提升查询速度,包括查询结果缓存、文档ID缓存等。 - **索引压缩**:索引的压缩可以减少存储空间,提高检索效率。 - **硬件配置**:合理的硬件配置,如SSD硬盘和足够的内存,有助...

    solr4.7中文企业开发参考文档

    1. **全文检索**:Solr的核心功能之一就是全文检索,它能对文档中的文本进行分析和索引,使用户可以通过关键词快速找到相关的文档。Solr使用了高效的倒排索引结构,支持模糊匹配和短语查询,提高了搜索的精确度和...

    使用mahout机器学习改进solr查询结果

    ### 使用Mahout机器学习改进Solr查询结果 #### 1. 概述 搜索引擎的核心功能之一是提供准确、相关的查询结果。随着用户行为的变化和技术的进步,优化查询结果以更好地匹配用户的实际需求变得越来越重要。本篇文章将...

    solr5.5.4使用文档

    ### Solr 5.5.4 使用文档 #### 一、环境配置与部署步骤 **1.1 环境需求** - **JDK**: 1.7 或以上版本。 - **Tomcat**: 8 或以上版本。 - **Solr**: 5.5.4 版本。 - **SolrJ**: 5.5.4 版本。 **1.2 部署步骤** 1...

    mahout机器学习改进solr查询结果

    ### Mahout机器学习改进Solr查询结果 #### 1. 概述 随着互联网技术的发展,搜索引擎成为人们获取信息的主要工具之一。为了提高搜索引擎的用户体验,优化查询结果变得尤为重要。本篇文章将详细介绍如何利用Apache ...

    solr技术文档

    当文档准备好后,通过Solr的API将它们发送到索引中,最后在应用程序中集成搜索功能,通过调用Solr的搜索API实现用户查询。 安装Solr非常简单,对于Linux系统,执行`bin/solr start [-p port]`即可启动,Windows系统...

    easynet.solr开发与使用

    开发者可以通过指定文档ID,找到目标文档,然后更新其中的字段,再提交修改,确保Solr中的数据始终与应用的数据保持同步。 3. 删除:当需要删除特定数据时,Easynet.Solr提供了删除文档的功能。可以根据文档ID或者...

    solr5.3.2配置文档

    在本文档中,我们将详细介绍如何安装并配置Solr 5.3.2,包括基本的安装步骤以及如何配置中文IK分词器与MySQL数据库的连接。 **1. 下载Solr 5.3.2** 首先,您需要从官方网站下载Solr 5.3.2的压缩包。下载地址为:...

    solr技术文solr技术文

    4. **高亮显示**:Solr支持搜索结果中的关键词高亮,帮助用户快速找到匹配的部分。这通过设置高亮参数来实现,如高亮标签、片段数量等。 5. **分布式搜索**:SolrCloud是Solr的分布式部署模式,它可以将索引分布到...

    solr查询语法

    Solr查询语法是Apache Solr搜索引擎的核心组成部分,用于精确、高效地从索引中检索信息。根据提供的文件信息,我们将深入探讨Solr查询语法的关键概念、查询规则、查询参数以及检索运算符,以便更好地理解和应用Solr...

    solr-4.10.3.rar

    2. **索引与查询**:Solr的核心功能是对文档进行索引,并提供高效的查询服务。索引过程包括分析、字段处理、倒排索引等步骤,这些都使得Solr能够在大量数据中快速找到相关结果。查询时,Solr支持多种查询语法和过滤...

    全文搜索技术solr Demo

    查询阶段,Solr接收用户输入的查询请求,通过索引快速定位到相关文档;结果返回阶段,Solr对匹配的文档进行排序,并返回给用户。 三、Solr安装与配置 在"solr-4.10.3.rar"中,包含了Solr的完整源码和运行环境。解压...

    Solr分组统计

    而精确查询则确保返回的结果与查询词完全一致,这对于查找特定的术语或短语非常有用。 在`EasyNet.Solr.sln`中,这是一个Visual Studio解决方案文件,包含了整个项目的所有组件和依赖关系。`EasyNet.Solr`可能是...

    solr部署技术文档。

    - **相关性排序**:搜索结果按照与查询的相关性排序。 - **返回结果**:最终将排序后的结果返回给用户。 **二、Solr搭建过程** 1. **下载与安装**:下载Solr 4.10.3,确保系统环境已安装JDK 1.7或更高版本。 2. ...

    solr开发应用教程

    5. 近似搜索:通过模糊匹配,找到与输入关键词相似的搜索结果。 6. 聚类和分类:对搜索结果进行自动聚类,帮助用户发现相关主题。 六、分布式搜索 SolrCloud是Solr的分布式解决方案,支持Sharding和Replication,...

    solr搜索自动补全

    在前端页面配置完成后,当用户开始在搜索框输入文字,会触发对应的JavaScript事件,然后JavaScript调用后端Solr服务器提供的接口,查询到合适的补全建议,并将结果展示给用户。 在实际的开发过程中,除了上述提及的...

    solr6.2.1项目包

    4. **SolrJ客户端**: `dist/solr-solrj-6.2.1.jar`是Solr的Java客户端库,用于与Solr服务器通信,发送请求,接收响应,是开发集成Solr应用时的重要依赖。 5. **文档和示例**: `docs`目录下包含Solr的用户指南、...

    解决solr启动404问题

    Solr的核心配置文件是`solrconfig.xml`和`schema.xml`,它们定义了索引的结构和处理查询的方式。 当你遇到404错误,首先检查Solr是否成功启动。查看日志文件(通常是`logs/solr.log`)以获取更详细的错误信息。如果...

Global site tag (gtag.js) - Google Analytics