首页 > 编程语言 >全文搜索算法问题

全文搜索算法问题

时间:2024-04-02 14:35:50浏览次数:39  
标签:匹配 关键词 搜索算法 条目 问题 关键字 搜索 列表 全文

l 问题描述:

用关键词在数据条目列表中搜索相关条目列表,并列出匹配字列表。算法如下:

将搜索关键词以字为单位分词,在数据中搜索相关条目,搜索出的条目排序规则:

1) 包含字最多的条目排在前面;同一字多次匹配只计数一次

2) 如果包含字数相同,条目短的排在前面

3) 如果包含字数相同且条目长度相同,条目中包含字的起止位置两边内容裁剪掉,包含各个字之间的全部内容替换为单个空格后,形成匹配浓缩内容,匹配浓缩内容短的条目排在前面。

4) 如果按照上述3条规则计算后位置相同的条目,则针对各个条目,计算匹配关键字在搜索关键词中首位置之和,首位置之和越小的条目排在前面

5) 如果不符合上述4条规则,需与数据条目列表的顺序保持一致

l 要求:

完成题目对应的程序模板(FulltextRetrieval)中的方法:

String[] query(String[] texts, String keyword);

该方法的入口参数texts为给定的数据条目列表,keyword为给定的关键词。

最后返回结果为字符串数组:数组中的每一个元素是一个字符串,字符串的构成格式是“数据条目,关键字1,关键字2,...”,就是把数据条目按要求排列,并把相关的关键字按关键字在给定的关键词中的顺序,拼接在相应的数据条目后面,使用英文逗号“,”作为分隔符。

l 样例:

n 样例1:

输入:[“石家营”,“老石营”],“石家营”

输出:[“石家营,石,家,营”,“老石营,石,营”]

n 样例2:

输入:[“1石1营1”,“1石营11”],“石营”

输出:[“1石营11,石,营”,“1石1营1,石,营”]

标签:匹配,关键词,搜索算法,条目,问题,关键字,搜索,列表,全文
From: https://www.cnblogs.com/Alisa-zmj/p/18110515

相关文章

  • Oracle 解决like中无法匹配下划线的问题
    如果想检索出字段中包含下划线“_”的内容,该如何书写SQL语句呢?之所以问这个问题,是因为在Oracle中下划线在like中有着特殊的含义,它表示匹配任意一个字符。因此在查询包含下划线内容的时候需要“特殊关照”一下。既然被问到了这个问题,简单记录一下两种规避的方法,供参考。1.创建实验......
  • 机构名称匹配问题
    n 问题描述在招投标信息管理系统中,准确匹配和标注机构名称对于文档管理和信息检索至关重要。基于一个预设的机构全程列表,为每条文档信息自动打上机构标签。这一任务在实际操作中面临诸多挑战,尤其是同一机构可能使用多种不同的名称表述方式,包括全称、简称、别称等。例如,同一机构......
  • 比特币钱包地址生成问题
    l 问题描述:比特币钱包负责管理私钥,在收款时往往会展示钱包地址。钱包地址的生成步骤如下(如图所示):获取私钥对应的公钥,再根据公钥计算公钥哈希值(ripemd160函数),得到一个20字节长度的字节数组;1.在公钥哈希值前面添加比特币地址版本号(1个字节,当前默认为0x00);2.对步骤1得到的数据进......
  • 用画镜播放器看奈飞的问题汇总
    画镜播放器作为唯一一个操作简易,效果稳定,并且完全免费看奈飞的工具,非常火爆。但是它也存在一些问题,这里分享一下我用画镜的一些心得,让大家不至于踩坑。Video点iamok点in,这是他们官网1、 使用中,发现没有全屏按钮,点击全屏无效!这里需要在键盘按F11就是全屏了2、 提示未引用对象的......
  • socket.io 跨域 cors.origin 的值,用于解决跨域问题
    在使用socket.io库时,对于实现跨域资源共享(CORS:Cross-OriginResourceSharing)的配置,您需要设置服务器的CORS选项来允许特定来源的请求或所有来源的请求。当创建或配置socket.io服务器时,CORS相关的设置通常是在初始化服务器时作为选项提供的。下面是几种不同的socke......
  • 2024前端vue面试问题以及答案
    Vuex相关问题Vuex是什么,它解决了什么问题?Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex的核心概念有哪些?State:存储所有组件的状态。Getters:类似于计算属......
  • 《拆解一切问题》如何成为解决难题的高手 - 三余书屋 3ysw.net
    拆解一切问题:如何成为解决难题的高手今天给大家分享的这本书叫做《拆解一切问题》,标题看起来确实有点虚,在没有读这本书之前,会让人感觉似乎只要读完学会书中的内容,就可以解决一切问题了。但事实上这种认识是误解,并没有什么问题的解决可以采用通用的方法。不过,作者在文中聊到的......
  • vant-weapp 提供的areaList城市数据的路径问题
    根据vant官网提供的引入方法会报错。通过add@vant/area-data会下载一份index.esm.mjs文件城市数据在项目中,我尝试了用各种路径来获取还是报错,最后只能将该index.esm.mjs文件复制到其他文件中,然后引入就可以了。 1.新建一个文件夹专门放数据的,然后在建个文件用来放这个......
  • 关于用栈和队列分别解决走迷宫问题的方法讨论(参与者:陈卓,毛敏磊)
    对于生活中最常见的小游戏——走迷宫,相信大家都不陌生,人为走相信大家都会走,但能不能用代码实现,我们认为是可以的,以下是我们对如何走迷宫的一些看法和代码实现(cz负责队列解决,mml负责用栈解决):1.关于用队列解决:先简单介绍一下队列:队列是一种操作受限的线性表,只允许在表的一端进行插......
  • Ubuntu20.04如何永久修改同一时间打开文件数上限以及解决Too many open files问题
       近期遇到一个问题,写的代码同一时间维护的tcp链接过多,导致linux的文件句柄达到上限,出现Toomanyopenfiles的问题。网上大多回答混乱,在这里做个总结,提醒日后使用。1.查看命令ulimit-a2.临时的修改,关闭终端失效ulimit-n204800或ulimit-SHn204800  //S代......