`

自定制的精准短文本搜索服务

阅读更多

自定制的精准短文本搜索服务 项目主页

 

自定制的精准短文本搜索服务

 

以公司名称搜索来驱动短文本搜索, 这里做了简化, 实际中会涉及更多的属性, 如公司类型, 所属区域等等, 自定制就有很大的灵活性

 

使用方法

 

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

  

1
1
分享到:
评论

相关推荐

    Anytxt.zip 文本搜索软件

    该软件的核心功能在于快速、精准地搜索文本文件中的内容,无论文件大小,都能在短时间内找到你需要的信息。这不仅节省了用户的时间,也提高了工作效率。 2. **搜索性能** Anytxt的搜索性能是其一大亮点。它采用了...

    LJCluster文本聚类技术中间件

    不仅聚类速度快,而且准确率高,内存消耗小,特别适合于超大规模的语料聚类和短文本的语料聚类。 灵玖文档聚类组件的主要特色在于: 1、速度快:可以处理海量规模的网络文本数据,平均每小时处理至少50万篇文档; 2...

    大数据时代下电子商务精准营销分析.pdf

    其次是SEO搜索引擎,通过关键词搜索优化,细分商品类目,精准展示用户感兴趣的产品。再有就是个性化营销,利用大数据技术分析用户行为,定制个性化的营销活动和广告。最后是智能推荐,如在用户购买完某商品后,推荐...

    Tomm闪电文件搜索

    它支持多种搜索条件组合,包括文件名、文件内容、文件类型等,用户可以根据自己的需求进行定制化搜索。例如,在进行代码审计时,我们可以快速定位到含有特定关键字的代码文件;在做SEO优化时,可以迅速找出包含...

    我搜(桌面版搜索引擎)

    用户可以通过下载并安装这个压缩包,将"我搜"添加到自己的计算机上,从而享受到快速、精准的桌面搜索服务。 总结来说,"我搜(桌面版搜索引擎)"是一款高效、全面且注重用户体验的本地文件搜索工具,它通过强大的搜索...

    文本替换专家绿色精简版

    该工具的核心功能在于其强大的文本搜索与替换能力。在网站开发中,我们常常需要修改大量代码文件中的特定文本,比如统一更新版权信息、替换API调用地址或是调整变量名。手动操作不仅耗时,而且容易出错。文本替换...

    盛大光速搜索 V1.0.1.280 绿色免费版

    通过阅读这份文本文件,用户可以了解如何启动搜索、设置偏好、定制快捷键等,从而提高使用效率。在没有在线帮助文档的情况下,这样的文本说明文件尤为重要。 "当下软件园.url"则是一个链接文件,指向“当下软件园”...

    社会化媒体中文文本分析的商业智能技术.pptx

    社会化媒体中文文本分析的商业智能技术是IBM中国研究院在2014年提出的一种利用先进技术处理和解析中文社会化媒体数据的策略。随着中国互联网的快速发展,尤其是社交媒体的崛起,如微博和社交网站,这些平台成为了...

    基于Lucene的医疗搜索引擎排序算法的研究.rar

    它将文本分词,创建倒排索引,从而能在短时间内找到包含特定关键词的文档。在医疗搜索引擎中,这一过程需要考虑医学词汇的特殊性,如同义词、术语缩写等,可能需要进行医学词汇的规范化处理,确保搜索的准确性和全面...

    Listary+Pro搜索神器

    cnmatch.bin可能就是其中的关键组件,它可能包含了快速文本匹配的算法代码,使得软件能在短时间内处理大量文件名和内容,实现闪电般的搜索响应。同时,portable.dat文件很可能存储了用户的配置信息和搜索历史,使得...

    lucene-3.02

    总结,Lucene 3.0.2是一个强大的全文检索工具,它不仅提供了完整的搜索解决方案,还具备良好的可扩展性和灵活性,使得开发者能够根据实际需求定制自己的搜索引擎。通过深入理解和实践,我们可以充分利用Lucene的特性...

    searchmyfiles

    "SearchMyFiles"弥补了这一不足,它提供了多种搜索条件,包括但不限于文件名、文件大小、修改日期、创建日期等,让用户可以根据自己的需求定制搜索策略。 该软件的主要特点包括: 1. **多条件组合搜索**:用户可以...

    every_thing.zip

    《Everything:高效精准的文件搜索利器》 在日常的计算机使用过程中,我们常常会遇到一个问题:需要找到某个文件,却忘记了它存储的具体位置。面对电脑中海量的文件,手动逐个目录翻找无疑效率低下。这时,一款强大...

    linkedin的商业模式分析.docx

    这种模式的成功在于它能够精准地满足企业和专业人士的需求,同时也有效地激励用户付费以获取更高级别的服务。然而,对于中国企业在模仿LinkedIn的过程中,需要考虑如何适应本土市场,平衡用户体验与盈利模式,以及...

    lucene5和IKAnalyzer5的jar包 相匹配

    Lucene的核心功能包括索引和搜索,它能够快速地对大量文本数据进行索引,并在短时间内返回相关的搜索结果。在Lucene5中,优化了多线程处理、提升了查询性能,并且支持更多种类型的字段和更丰富的查询语法,使得...

    lucene实战第二版(最新)

    如果读者对信息检索或文本搜索有具体的需求,这本书将提供足够的信息帮助你实现成功地完成搜索任务。即使读者的目标是下载一个现成的搜索引擎,这本书也会为读者提供对信息检索本质的良好理解,以及对文本索引和搜索...

    文件字符串搜索查找 FileSeek(文件字符串搜索查找) v6.2.1

    FileSeek是一款专为此目的设计的高效软件,它能够帮助用户快速、精准地在文件中搜索特定的字符串。让我们深入了解一下FileSeek的核心功能和优势。 FileSeek的主要特点在于其速度和易用性。在处理大数据量时,速度是...

    移动互联网加速档案资源开放利用.pdf

    用户可以通过检索工具进行高效的信息搜索,并根据自己的需求定制信息的接收时间和形式。同时,档案资源的提供者可以利用用户画像技术,对用户的行为特征和偏好进行分析,从而实现对用户的精准推送服务,提高档案资源...

    ICTCLAS中文分词系统

    1. **高效分词**:系统采用高效的分词算法,能够在短时间内处理大量中文文本,适用于大数据量的文本处理任务。 2. **精准识别**:针对不同的语境和词汇,ICTCLAS能准确识别出词语的边界,减少歧义和错误分词,提高...

Global site tag (gtag.js) - Google Analytics