当前位置: 首页 > 编程日记 > 正文

Lucene.Net 2.3.1开发介绍 —— 三、索引(六)

2.2 Field的Boost

如果说Document的Boost是一条线,那么Field的Boost则是一个点。怎么理解这个点呢?设置Document的Boost会影响所有字段。在搜索的过程中,一般至少会搜索两个Field,比如同时搜索标题和内容。而Document的Boost将同时影响标题和内容的搜索得分,但是设置Field的Boost则不会有那么大的影响,Field的Boost只会影响一个点。那这个点有什么用呢?

现在来做个假设,假设,现在有一条记录是关于Lucene的,这篇文章讲得很好,我想要让别人搜索Lucene这个关键字的时候,这条记录一定排在前10。怎么办?设置Docuement的Boost?设置得还很高?OK!这篇文章里面也有其他关键字,比如"asp.net","Sql Server"。现在搜索"asp.net",发现这篇文章也跑到前10了。这可不是我想要的。

怎么办呢?

现在有两个解决办法,一个就是冗余一个Field,里面记录了Tag一类的东西,给这篇文章设置Tag值为“Lucene”,同时在索引tag字段的时候把它的Boost调高。比如代码2.2.1,在添加完文档后把该文档的tag这个Field Boost设置为想要的。

代码2.2.1
 1/**//// <summary>
 2/// 添加文档
 3/// </summary>
 4/// <param name="writer">维护文档管理器</param>
 5/// <param name="title">标题</param>
 6/// <param name="content">内容</param>
 7/// <param name="tag">tag</param>
 8/// <param name="boost">tag的boost</param>

 9void AddDocument(IndexWriter writer, string title, string content, string tag, float boost)
10{
11    Document document = new Document();
12    document.Add(new Field("title", title, Field.Store.YES, Field.Index.TOKENIZED));
13    document.Add(new Field("content", content, Field.Store.YES, Field.Index.TOKENIZED));
14    document.Add(new Field("tag", content, Field.Store.YES, Field.Index.TOKENIZED));
15    document.GetField("tag").SetBoost(boost);
16    writer.AddDocument(document);
17}

当然,这样处理不是很好,一来,增加一个字段,给维护上带来难度,而且很多好文章没tag怎么办,再有就是非站内搜索呢?另一种办法就是设置一个字数相对较少的字段,调高它的Boost。

比如,我现在把Title这个字段的Boost调成1.3,也就是说我搜索的时候,title的权重要比content的高,那么当我标题中含有Lucene的时候,得分总是会偏高,那样,就可以把记录调到前面去了。这里千万不要调高content,如果全部调的话影响也不是太大,但是对于搜索整体的质量有很大影响。为什么这么说呢?因为如果标题里含有一个keyword "a",那么这篇文章一般有关于这个“a”的内容,但是如果内容里含有“a”而标题没有,非常多的文章实际上都不是讲“a”的。

2.3 怎么有效调整得分

这里只是我的一些调整的经验,其实想一想也就明白了,没什么深奥的。

(1)、首先,标题的权重一定比内容的要高;

(2)、根据实际情况调整权重;

比如,现在要索引论坛的内容,那完全可以设置内容很少的帖子权重非常低,这个时候直接设置Document的权重就行了;而如果这个帖子的回复或者访问量  又非常高,那么每个回复或者浏览量,给加0.01的基数,让这个总体量不超过0.2;要是这个帖子是精华贴呢?直接加上0.1吧。

实际的调整过程就是你把各种问题想想全面就好了。

(3)、如果要把一个文档的Document的Boost调得非常高,比如调整成2,那么千万要注意,减少它的内容,内容中出现的词越少越好;

比如,像baidu那种的做个广告,那么就在里面放一个商家买的关键词就行了,其它什么也不要。

(4)、宁可设置Field,比设置Document来得好,设置的方法就不用说啦。

要注意的是,越短的帖子,越要降低它的权重。比如它只有两个字,怎么也要把它的权重调到0.1一下。为什么?因为两个字一般是一个词,这个词如果被搜索,得分就是1,你不调?那不是让水贴浮到最上层了么?

以上都是些经验之谈,大家可以结合实际情况自己做一些调整。经验主义,有错误和不足的地方,大家多包涵,指正,呵呵。

转载于:https://www.cnblogs.com/birdshover/archive/2008/09/09/1287844.html

相关文章:

linux nor flash 读写,9.2 NorFLASH读写实验——M25PExx

>[danger] 学习本节内容前&#xff0c;请先检查自己手上的开发板是否具备NorFlash存储器&#xff0c;如不具备则可跳过本章节。> ZigBee 标准板&#xff1a;具备> ZigBee MINI板&#xff1a;不具备> ZigBee 网关 & 嵌入式Linux 二合一开发板&#xff1a;具备我…

sql server分布式事务解决方案[新事务不能登记到指定的事务处理器中错误]

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 适用环境 操作系统&#xff1a;windows 2003&#xff0c;xp 数据库&#xff1a;sql server 2000/sql server 2005 使用链接服务器进行远程数据库访问的情况 一、 问题现象 在执行分布…

微软“叛变”谷歌 Chromium!

去年&#xff0c;微软工程师在公开演示 Azure 服务时&#xff0c;微软 Edge 浏览器频频崩溃&#xff0c;逼得他只能在众目睽睽的尴尬局面下&#xff0c;使用 Edge 下载 Chrome 浏览器来继续他的演示。一年之后的今天&#xff0c;Edge 就抱上了 Chrome 的大腿。图片来源&#xf…

vCenter Server Appliance 6.5 中重置丢失或忘记的 root 密码

vCenter Server Appliance 6.5 中重置丢失或忘记的 root 密码 目前安装vCenter Server Appliance 6.5客户原来越多&#xff0c;给用户配置过程中&#xff0c;往往会忽略默认的root 密码策略&#xff1a;60天过期。一旦密码过期或忘记密码&#xff0c;vcsa的管理控制台就无法通过…

linux 查看剪贴板历史,Clipboard History Manager插件,查看浏览器剪贴板历史记录

Clipboard History Manager插件&#xff0c;是一款浏览器剪贴板历史记录管理工具&#xff0c;通过它可以快速查看最多1000个本机上的剪贴数据&#xff0c;适用于Mac和Windows操作系统。A full-featured desktop clipboard manager for Mac, Windows and Linux to track what yo…

ORACLE执行计划的一些基本概念

本文介绍了ORACLE执行计划的一些基本概念&#xff0c;供学习应用。 一&#xff0e;相关的概念 Rowid的概念&#xff1a;rowid是一个伪列&#xff0c;既然是伪列&#xff0c;那么这个列就不是用户定义&#xff0c;而是系统自己给加上的。对每个表都有一个rowid的伪列&#xff0c…

公开课报名 | 那些年,我们在文本分类中遇到的坑

文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题&#xff0c;很多时候&#xff0c;我们需要将文本信息进行分类&#xff0c;或提相关的接口以供外部进行文本上传&#xff0c;在针对于用户所上传的文档信息就需要进行文档内容的分类&#xff0c;那么针对于这…

Cisco网院成立10周年-未来三年在蓉增50所

2008年9月18日—— 今天&#xff0c;主题为“十年创新&#xff0c;传承未来”的Cisco中国网络技术学院十周年庆典在四川成都举行。会上&#xff0c;Cisco宣布将与四川省政府和教育部进一步加强合作&#xff0c;在四川新建立50所Cisco网络技术学院&#xff0c;以实现该项目在四川…

荣耀预装linux安装包,关于华为机子没有预装应用商店讨论

在荣耀笔记本(Linux版)中拥有深度应用商店&#xff0c;几步就搞定啦&#xff01;在荣耀笔记本(Linux版)中拥有深度应用商店&#xff0c;几步就搞定啦&#xff01;深度操作系统 今天随着预装深度操作系统(deepin)的荣耀笔记本(Linux版)的开卖(未来可期&#xff01;荣耀Magicbook…

如何自学CS?

整理 | 非主流出品 | AI科技大本营哪个行业的平均工资最高&#xff1f;计算机。国家统计局的数据显示&#xff0c;2016 年信息传输、软件和信息技术服务业年平均工资为 122478 元&#xff0c;首超金融行业&#xff0c;并于 2017 年再次夺魁。在互联网和人工智能浪潮的推动下&am…

oracle 使用nfs挂载的目录不能进行归档

oracle 使用nfs挂载的目录不能进行归档 在做实验时将oracle的归档目录放在nfs服务器上&#xff0c;启动数据库就会死掉&#xff0c;也不能进行归档。在报警日志中发现WARNING:NFS file system /mnt mounted with incorrect options WARNING:Expected NFS mount options: rs…

生产中NFS案例记录---写入权限解决过程

生产中NFS案例记录---写入权限解决过程NFS配置要求&#xff1a;1、 将oracle文件写入到NFS Server端&#xff0c;注意权限要与oracle端一致。2、 Oracle端目录文件所属用户为oracle&#xff0c;uid&#xff1a;500 gid 501。格式约定&#xff1a;命令显示过程 文字说明特别注意…

吴文俊人工智能科学技术奖:陆汝钤院士、百度王海峰等获奖

12月9日上午&#xff0c;被誉为“中国智能科学技术最高奖”的吴文俊人工智能科学技术奖在苏州举行颁奖典礼。本届吴文俊人工智能奖共对70项人工智能成果授奖。其中&#xff0c;中国科学院院士、中国科学院数学与系统科学研究院研究员陆汝钤成为首位吴文俊人工智能最高成就奖获得…

河南科技大学c语言章节作业答案,河南科技大学C语言试题

c语言试题,基本上是题库。上机作业用的。大家好好把握。C程序的运行环境和简单C源程序的调试&#xff0c;实验报告(共 题)&#xff0c;用时(127分33秒)&#xff0c;成绩(A)1、 有如下程序&#xff1a; #include"stdio.h" main( ) { int a8;printf("%d,%5d,%-5d#…

qinyu.blog.51cto.com里的好文章,比尔盖茨

世纪枭雄比尔盖茨的王者传奇儿时&#xff0c;他便躁动不安&#xff0c;顶着梳不顺的头发&#xff0c;在竞技中缕缕获胜。少年英才没有机会慢慢成长&#xff0c;21岁&#xff0c;他创办了微软&#xff0c;从此走上IT业的颠峰之路&#xff0c;垄断了13年的财富榜首&#xff1b;32…

Clean-Code: 注释

别给糟糕的代码加注释-----------------重新写吧 这是书中的关于注释一章的第一句话&#xff0c;怎么说呢&#xff0c;这句话个人感觉很对&#xff0c;但是实际上却很少这么做&#xff0c; 有几个原因&#xff1a; 糟糕的代码不是自己写的&#xff0c;别人写的代码&#xff0…

在c语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值,计算机二级考试 程序设计基础试题及答案三...

《程序设计基础》考试试卷三1. 判断下面标识符中哪个是C语言中合法的用户定义标识符&#xff1a;A. a-bB. #abdC. typedefD. _max2. …b?在内存中占个字节&#xff0c;“B”在内存中占个字节。A. 1B. 2C. 3D. 43. 下列表达式的值哪些不等于0&#xff1f;A. 2>>1B. ~a&am…

免费报名 | WPS专家教你文本分类在企业中的应用实践

文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题&#xff0c;很多时候&#xff0c;我们需要将文本信息进行分类&#xff0c;或提相关的接口以供外部进行文本上传&#xff0c;在针对于用户所上传的文档信息就需要进行文档内容的分类&#xff0c;那么针对于这…

[ZT]如何取得客户端的Windows登录用户名?

1. 在ASP.NET中专用属性&#xff1a; 获取服务器电脑名&#xff1a;Page.Server.ManchineName 获取用户信息&#xff1a;this.User.Identity.Name (IIS安全設置必須使用集成Windows驗證) 获取客户端电脑名&#xff1a;Page.Request.UserHostName 获取客户端电脑IP…

C#使用WIN32API来高效率的遍历文件和目录(转)

我们有时需要遍历某个目录下的文件和子目录&#xff0c;可以使用System.IO.DirectoryInfo.GetDirectories或 GetFiles来获得目录下的所有的文件和子目录&#xff0c;当这个目录下的内容比较多时&#xff0c;这个操作就比较耗时间&#xff0c;有时我们仅仅需要知道某个目录下是否…

c语言1变A,c语言那些细节之a+1和a+1的区别

首先a是一个数组名&#xff0c;当看到这个a与&a时&#xff0c;一般我们的理解都是这个数组的首地址。没错&#xff0c;如果加上打印的话&#xff0c;确实两个值是一样的。不过&a是整个数组的首地址&#xff0c;a则是数组首元素的地址&#xff0c;虽然值一样&#xff0c…

【收藏清单】AI学习资料汇总——你想要的AI资源,这里都有

本文汇总了TinyMind站内AI资料类热门文章TOP10&#xff0c;欢迎大家各取所需。来源&#xff1a;https://www.tinymind.cn/ 1、【AI入门者必看】——人工智能技术人才成长路线图 入门AI的两大方式与进阶AI的十大路线&#xff0c;吐血之作&#xff0c;人手必备。路线图可在文末…

25,000,000行的代码就问你敢不敢动?!

你经历过绝望吗&#xff1f;近日&#xff0c;Hacker News 上发起了一个名为“你见过最糟糕的代码是什么&#xff1f;”&#xff08;https://news.ycombinator.com/item?id18442637&#xff09;的话题&#xff0c;引发了无数网友回忆讨论&#xff0c;甚至还再次让软件巨头 Orac…

c语言规定预处理命令必须以什么开头,C语言规定预处理命令必须以___________开头...

在定温定容下&#xff0c;语言规开反应NH4Cl (s) NH3 (g) HCl (g)达平衡&#xff0c;加入惰性气体平衡不移动05580041&#xff1a;定预若a、b均为int型变量,且a100,则for (b100;a!b;a,b) printf(----\n)是死循环。()处理05710012&#xff1a;以下正确的描述是( )。命令成年早期…

MySQL 微秒慢查询补丁

作/译者&#xff1a;叶金荣&#xff08;Email: &#xff09;&#xff0c;来源&#xff1a;http://imysql.cn&#xff0c;转载请注明作/译者和出处&#xff0c;并且不能用于商业用途&#xff0c;违者必究。原文出自&#xff1a;The new cool MySQL patch has landed! Check your…

Win10 15063 开始运行不保存历史记录原因和解决方法

在Win10 1703的时候你也许会发现开始运行以后&#xff0c;再次打开就没有任何历史记录了&#xff0c;常规方法是桌面-右键-个性化-开始-显示最常用的应用..可是打开是灰色的不可选.. 其实这个问题很好解决&#xff0c;在win10 15063隐私里面有一个设置的原因&#xff0c;请跟随…

CCNA培训课总结笔记--交换机的基本配置(十三)

实验目的:熟悉交换机的基本配置,学会在交换机上划分VLAN及如何将接口划分到指定的VLAN.本实验主要是用模拟器DynamipsGUI及3640的IOS文件做的实验,所以配置的命令有些会有出入.实验设备:3640交换机系列实验内容:其实交换机的基本操作包括设置特权登陆密码,设置控制台的密码等都…

TensorFlow 2.0发布在即,高级API变化抢先看

作者 | Sandeep Gupta, Josh Gordon, and Karmel Allison整理 | 非主流、Jane出品 | AI科技大本营【导语】早在今年 8 月的时候&#xff0c;谷歌开源战略师 Edd Wilder-James 在一封公开邮件中表示正在研发 TensorFlow 2.0&#xff0c;并将于今年晚些时候发布预览版。在 2018 年…

mp4 android自动播放,Android 使用VideoView播放MP4的简单实现

使用VideoView播放MP4播放示例实现简单的播放功能&#xff0c;播放手机本地的MP4文件。不依赖任何第三方框架&#xff0c;不添加任何防腐剂。添加一个系统自带的控制条。申请权限读取存储中的MP4文件准备布局文件在frag_video_view.xml中放置VideoView&#xff1b;为了让内容居…

Sublime-text theme 颜色主题

主题文件下载&#xff1a;Monokai.rar 替换办法&#xff1a; Preferences -> Browser packages -> Color Scheme - DefalutPreferences -> Browser packages -> Color Scheme - Defalut 覆盖 文件物理位置(win7)&#xff1a; C:\Users\用户名\AppData\Roaming\S…