自定制的精准短文本搜索服务 项目主页
自定制的精准短文本搜索服务
以公司名称搜索来驱动短文本搜索, 这里做了简化, 实际中会涉及更多的属性, 如公司类型, 所属区域等等, 自定制就有很大的灵活性
使用方法
git clone https://github.com/ysc/short-text-search.git cd short-text-search unix类操作系统执行: chmod +x startup.sh & ./startup.sh windows类操作系统执行: ./startup.bat 打开浏览器访问: http://localhost:8080/index.jsp JSON格式的API接口: http://localhost:8080/search_suggest.jsp?kw=%E6%B7%B1%E5%9C%B3%E4%B8%87%E7%A7%91&topN=10&highlight=true
短文本数据
短文本数据存放在类路径下的 short_text.txt 文件中 src/main/resources/short_text.txt 可以将该文件替换为自己的数据, 如电影名称 电视节目名称 全国邮政地址等等
索引格式
系统启动后, 会在启动目录生成索引文件, 如果格式感兴趣, 可查看这些文件: ☁ short-text-search [master] ⚡ du -h *.txt [master↑1|✚7… 2.9M document.txt 1.0M index_id_to_document_id.txt 124M invert_index.txt 33M invert_index_length_status.txt
索引维护
每天03:30全量重建索引, 虽然这里是从文件读, 不会变, 没有重建的必要 但是实际中, 一般是从数据库或者外部系统读, 如果不需要实时索引, 则有重建的必要 实时索引的用法如下: // 删除 SearchService.getShortTextSearcher().deleteIndex(100); // 更新 SearchService.getShortTextSearcher().updateIndex(new Document(100, "阿里巴巴"));
搜索性能分析
1. 找出评分过程最耗时的前10条查询, 分析命令如下: cat logs/short_text_search_logback* | grep 评分耗时 | awk -F ' - ' '{print $2}' | sort -rn | awk '{print $2,$3,$4}' | head -n 10 结果: 评分耗时: 141毫秒 228911-1000 评分耗时: 133毫秒 228914-1000 评分耗时: 131毫秒 249855-1000 评分耗时: 129毫秒 249856-1000 评分耗时: 125毫秒 249860-1000 评分耗时: 122毫秒 231364-1000 评分耗时: 114毫秒 249859-1000 评分耗时: 111毫秒 233657-1000 评分耗时: 107毫秒 231981-1000 评分耗时: 107毫秒 231368-1000 第一列是执行时间, 单位为毫秒, 最后一列是搜索序号+搜索最大并发 如果想知道完整查询的时间, 则将 评分 改为 搜索接口总, 分析命令如下: cat logs/short_text_search_logback* | grep 搜索接口总耗时 | awk -F ' - ' '{print $2}' | sort -rn | awk '{print $2,$3,$4}' | head -n 10 结果: 搜索接口总耗时: 198毫秒 245296-1000 搜索接口总耗时: 196毫秒 245292-1000 搜索接口总耗时: 192毫秒 245295-1000 搜索接口总耗时: 179毫秒 245297-1000 搜索接口总耗时: 169毫秒 245298-1000 搜索接口总耗时: 159毫秒 249862-1000 搜索接口总耗时: 144毫秒 228911-1000 搜索接口总耗时: 140毫秒 228914-1000 搜索接口总耗时: 137毫秒 245299-1000 搜索接口总耗时: 134毫秒 249855-1000 2. 接下来我们想看看最耗时的这条搜索在其他过程中的耗时情况, 分析命令如下: cat logs/short_text_search_logback* | grep 耗时 | awk -F ' - ' '{print $2}' | awk '{print $2,$3,$4}' | grep 245296-1000 结果: 查询解析耗时: 0毫秒 245296-1000 搜索耗时: 1毫秒 245296-1000 评分耗时: 20毫秒 245296-1000 排序耗时: 0毫秒 245296-1000 搜索接口总耗时: 198毫秒 245296-1000 如果想知道这条查询的详细查询参数, 分析命令如下: cat logs/short_text_search_logback* | grep 245296-1000 | awk -F ' - ' '{print $2}' 结果: 搜索关键词: beno, topN: 10, highlight: false 245296-1000 0 查询解析耗时: 0毫秒 245296-1000 查询结构: [beno, b, e, n, o, be, en, no, ben, eno] 245296-1000 1 搜索耗时: 1毫秒 245296-1000 搜索到的结果文档数: 1283, 总的文档数: 17985, 搜索结果占总文档的比例: 7.1337223 %, 限制后的搜索结果数: 1000, 限制后的搜索结果占总文档的比例: 5.5601892 % 245296-1000 20 评分耗时: 20毫秒 245296-1000 0 排序耗时: 0毫秒 245296-1000 198 搜索接口总耗时: 198毫秒 245296-1000 3. 如果想知道大部分查询的评分时间, 分析命令如下: cat logs/short_text_search_logback* | grep 评分耗时 | awk -F ' - ' '{print $2}' | awk -F ' ' '{print $2,$3}' | sort | uniq -c | sort -rn | head -n 10 结果: 28112 评分耗时: 0毫秒 14490 评分耗时: 1毫秒 5513 评分耗时: 2毫秒 2115 评分耗时: 3毫秒 1752 评分耗时: 14毫秒 1197 评分耗时: 13毫秒 1133 评分耗时: 15毫秒 892 评分耗时: 4毫秒 654 评分耗时: 16毫秒 606 评分耗时: 12毫秒 567 评分耗时: 5毫秒 554 评分耗时: 17毫秒 532 评分耗时: 19毫秒 528 评分耗时: 18毫秒 512 评分耗时: 21毫秒 509 评分耗时: 7毫秒 492 评分耗时: 22毫秒 488 评分耗时: 20毫秒 477 评分耗时: 8毫秒 472 评分耗时: 23毫秒 460 评分耗时: 6毫秒 460 评分耗时: 24毫秒 450 评分耗时: 25毫秒 446 评分耗时: 26毫秒 412 评分耗时: 27毫秒 380 评分耗时: 9毫秒 363 评分耗时: 11毫秒 344 评分耗时: 28毫秒 329 评分耗时: 10毫秒 298 评分耗时: 29毫秒 第一列表示评分次数, 说明有28112次评分用的时间都不足1毫秒 4. 分析搜索耗时超过3秒的情况, 分析命令如下: cat logs/short_text_search_logback* | grep 搜索接口总耗时 | awk -F ' - ' '{print $2}' | awk '{if($1>=3000){print $1,$4,$1}}'| sort -rn | awk '{print $2,$1}' > cost-greater-3s.txt 5. 分析每一次搜索的耗时情况, 分析命令如下: cat logs/short_text_search_logback* | grep 搜索接口总耗时 | awk -F ' - ' '{print $2}' | awk '{print $4,$1}' > search_performance.txt
相关推荐
该软件的核心功能在于快速、精准地搜索文本文件中的内容,无论文件大小,都能在短时间内找到你需要的信息。这不仅节省了用户的时间,也提高了工作效率。 2. **搜索性能** Anytxt的搜索性能是其一大亮点。它采用了...
不仅聚类速度快,而且准确率高,内存消耗小,特别适合于超大规模的语料聚类和短文本的语料聚类。 灵玖文档聚类组件的主要特色在于: 1、速度快:可以处理海量规模的网络文本数据,平均每小时处理至少50万篇文档; 2...
其次是SEO搜索引擎,通过关键词搜索优化,细分商品类目,精准展示用户感兴趣的产品。再有就是个性化营销,利用大数据技术分析用户行为,定制个性化的营销活动和广告。最后是智能推荐,如在用户购买完某商品后,推荐...
它支持多种搜索条件组合,包括文件名、文件内容、文件类型等,用户可以根据自己的需求进行定制化搜索。例如,在进行代码审计时,我们可以快速定位到含有特定关键字的代码文件;在做SEO优化时,可以迅速找出包含...
用户可以通过下载并安装这个压缩包,将"我搜"添加到自己的计算机上,从而享受到快速、精准的桌面搜索服务。 总结来说,"我搜(桌面版搜索引擎)"是一款高效、全面且注重用户体验的本地文件搜索工具,它通过强大的搜索...
该工具的核心功能在于其强大的文本搜索与替换能力。在网站开发中,我们常常需要修改大量代码文件中的特定文本,比如统一更新版权信息、替换API调用地址或是调整变量名。手动操作不仅耗时,而且容易出错。文本替换...
通过阅读这份文本文件,用户可以了解如何启动搜索、设置偏好、定制快捷键等,从而提高使用效率。在没有在线帮助文档的情况下,这样的文本说明文件尤为重要。 "当下软件园.url"则是一个链接文件,指向“当下软件园”...
社会化媒体中文文本分析的商业智能技术是IBM中国研究院在2014年提出的一种利用先进技术处理和解析中文社会化媒体数据的策略。随着中国互联网的快速发展,尤其是社交媒体的崛起,如微博和社交网站,这些平台成为了...
它将文本分词,创建倒排索引,从而能在短时间内找到包含特定关键词的文档。在医疗搜索引擎中,这一过程需要考虑医学词汇的特殊性,如同义词、术语缩写等,可能需要进行医学词汇的规范化处理,确保搜索的准确性和全面...
cnmatch.bin可能就是其中的关键组件,它可能包含了快速文本匹配的算法代码,使得软件能在短时间内处理大量文件名和内容,实现闪电般的搜索响应。同时,portable.dat文件很可能存储了用户的配置信息和搜索历史,使得...
总结,Lucene 3.0.2是一个强大的全文检索工具,它不仅提供了完整的搜索解决方案,还具备良好的可扩展性和灵活性,使得开发者能够根据实际需求定制自己的搜索引擎。通过深入理解和实践,我们可以充分利用Lucene的特性...
"SearchMyFiles"弥补了这一不足,它提供了多种搜索条件,包括但不限于文件名、文件大小、修改日期、创建日期等,让用户可以根据自己的需求定制搜索策略。 该软件的主要特点包括: 1. **多条件组合搜索**:用户可以...
《Everything:高效精准的文件搜索利器》 在日常的计算机使用过程中,我们常常会遇到一个问题:需要找到某个文件,却忘记了它存储的具体位置。面对电脑中海量的文件,手动逐个目录翻找无疑效率低下。这时,一款强大...
这种模式的成功在于它能够精准地满足企业和专业人士的需求,同时也有效地激励用户付费以获取更高级别的服务。然而,对于中国企业在模仿LinkedIn的过程中,需要考虑如何适应本土市场,平衡用户体验与盈利模式,以及...
Lucene的核心功能包括索引和搜索,它能够快速地对大量文本数据进行索引,并在短时间内返回相关的搜索结果。在Lucene5中,优化了多线程处理、提升了查询性能,并且支持更多种类型的字段和更丰富的查询语法,使得...
如果读者对信息检索或文本搜索有具体的需求,这本书将提供足够的信息帮助你实现成功地完成搜索任务。即使读者的目标是下载一个现成的搜索引擎,这本书也会为读者提供对信息检索本质的良好理解,以及对文本索引和搜索...
FileSeek是一款专为此目的设计的高效软件,它能够帮助用户快速、精准地在文件中搜索特定的字符串。让我们深入了解一下FileSeek的核心功能和优势。 FileSeek的主要特点在于其速度和易用性。在处理大数据量时,速度是...
用户可以通过检索工具进行高效的信息搜索,并根据自己的需求定制信息的接收时间和形式。同时,档案资源的提供者可以利用用户画像技术,对用户的行为特征和偏好进行分析,从而实现对用户的精准推送服务,提高档案资源...
1. **高效分词**:系统采用高效的分词算法,能够在短时间内处理大量中文文本,适用于大数据量的文本处理任务。 2. **精准识别**:针对不同的语境和词汇,ICTCLAS能准确识别出词语的边界,减少歧义和错误分词,提高...