任务 您是 一个公司的软件工程师, 负责实现他们的搜索引擎。执行搜索引擎时, 应要求用户使用命令行参数指定 "搜索模式"。用户应该能够从两种模式中进行选择:·手动引导搜索手动引导搜索(命令行关键字 "手册") 允许用户手动 (手动) 在搜索引擎中键入查询词。提交搜索字词 (输入按下的键) 后, 搜索引擎应将所有文档 id 打印到至少一个查询字词匹配的屏幕上。·脚本引导式搜索脚本引导搜索 (命令行键字 "脚本") 允许用户在与搜索引擎相同的文件位置创建名为 "query. txt" 的查询。查询文件包含由查询 id 标识的搜索查询 (每行 1个)。 示例查询. txt:q1 house mouseq2 star car bar 在本例中, q1 和 q2 是查询1和查询2的查询 id。查询 1 (q1) 由2个查询术语 (house and mouse) 组成, 而查询2由3个查询术语 (star car bar) 组成 执行以下步骤:. 1 获取数据集创建一个名为 "搜索引擎" 的新工作目录并下载数据集。打开工作目录中的存档并手动检查文件。请注意文档的哪一部分与您的搜索引擎相关, 如数据部分所述。. 2 创建源文件创建一个名为 search xxxx. c (xxx 应替换为您的学生 id) 的源代码文件。源代码文件包含搜索引擎的整个代码。.3 实现核心搜索引擎算法 实现其他两种搜索模式手册和脚本的核心搜索引擎。 应使用选项“manual”或“script”将搜索模式指定为命令行参数。 算法1说明了核心搜索引擎的伪代码。见图2.. 4 修正核心搜索引擎算法 在为搜索引擎创建伪代码时, hackit 的工程师犯了一个错误, 因为他们的算法版本为与文档术语匹配的每个查询术语打印文档 id。当然, 这是一个错误, 是不能接受的。您需要确保每个文档 id 只打印一次以进行筛选, 而不考虑与之匹配的查询术语的数量。 .5 高级搜索引擎 i-精确搜索 通过实现精确的搜索功能作为命令行选项 "精确搜索" 来扩展核心搜索引擎。此功能应适用于两种搜索模式 (手动和脚本), 并与所有其他高级搜索功能兼容。如果搜索引擎使用 "精确搜索" 命令行参数执行, 则只打印那些与所有查询术语匹配的文档以进行筛选。例如:d1{a,b,c} d2{a,g,d} d3{a,b} d4{a,b,r,f} q1{a,b,f} 当 "精确搜索" 被激活时时, 只应打印文档 d4, 因为它是唯一与查询 q1 的所有查询术语匹配的文档, 即: q1 的所有查询术语 (a、b、f) 也出现在 d4 中。 .6高级搜索引擎 ii-顶级搜索通过将顶级搜索功能实现为命令行选项 "topsearch" 来扩展搜索引擎。此功能应适用于两种搜索模式 (手动和脚本), 并与所有其他高级搜索功能兼容。如果搜索引擎使用 "topsearch" 命令行参数执行, 则只向屏幕打印包含最多查询术语 (查询和文档之间最大重叠) 的文档。例如:d1{a,a,a,a,c} d2{a,g,d,d} d3{a,b,x}d4{a,b,r,f} q1{a,b,x} 当 "顶级搜索"被激活时, 在搜索查询 q1 时, 只应将文档 d1 打印到屏幕上。请注意, 文档 d3 匹配 q1 中的所有查询术语, 但 d3 和 q1 = 3 的重叠, 而 d1 和 q1 = 4 的重叠则被视为重复查询术语。还有一些具体的数据集、要求什么的,请感兴趣的大佬们私聊我,感激不尽,重金酬谢!
这个程序里的搜索引擎跟你说的还是有一点不一样,就是一个自编的很简单的搜索引擎......求代码~不过还是很感谢回答~