当前位置: 首页 > wzjs >正文

茶山网站建设公司黄冈seo顾问

茶山网站建设公司,黄冈seo顾问,ug wordpress,wordpress 转英文阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 文章导读 零:项目结果展示 一:前引 二:停用词表 1:…

   

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

文章导读

零:项目结果展示

一:前引

二:停用词表

1:问题引入

2:解决方式

(1)停用词表的引入

(2)停用词表的加载

 3:前后结果对比

三:正则继续薄纱

1:查看源代码

2:后端代码分析 

3:使用\b正则匹配

(1)简单讲解怎么用

4:后端代码修改


文章导读

阿华将发布项目复盘系列的文章,旨在:

1:手把手细致带大家从0到1做一个完整的项目,保证每2~3行代码都有详细的注解

2:通过文字+画图的方式,对项目进行整个复盘,更好的理解以及优化项目

3:总结自己的优缺点,扎实java相关技术栈,增强文档编写能力

 4:目前项目已经上线,访问链接如下

Java 文档搜索

零:项目结果展示

简述:在我的搜索引擎网站,用户进行关键字搜索,就可以查询到与这个关键字相关的java在线文档,(包含标题,关键字附近的简述,url),用户点击标题,即可跳转到相关在线文档,适用于JDK17版本。

一:前引

在上一篇文章中,我们完成了相关的web模块,但是在测试,使用功能的过程中暴露出来了一些问题。本篇文章将会带领大家进行分析解决

二:停用词表

1:问题引入

我们看这一次搜索结果,我们在arraylist 间加入了空格字符,此时搜索出来的结果,右1w多条很明显是非常不合理的,才想,后端是不是把空格字符也当成我们搜索的关键词,在后端索引中进行查找匹配了。毕竟我们文档数量也没有那么多

2:解决方式

问题:把一些 a is 空格,标点。这些不应该出现在搜索词句中的字符给过滤掉

(1)停用词表的引入

停用词表类似于一个筛子,究竟哪些词需要被过滤掉呢?这就是语言学家需要考虑的问题了

这里我们在网上搜索停用词表,下载一个txt文档即可

(2)停用词表的加载

我们把这些词存到一个全局变量HashMap中去

    //哈希表保存停用词private HashSet<String> stopWords = new HashSet<>();
    public void loadStopWords(){try(BufferedReader bufferedReader = new BufferedReader(new FileReader(STOP_WORD_PATH))){while(true){String line = bufferedReader.readLine();//读取结果不包含\n换行if(line == null){break;}stopWords.add(line);}} catch (IOException e) {e.printStackTrace();}}

 3:前后结果对比

我们1w多个搜索结果暴减到3k多个

三:正则继续薄纱

问题引入:我们搜索完arraylist,继续往下划拉,会发现怎么还是会返回好多与搜索关键词句无关的文档?

1:查看源代码

这时候我们就要去看看这个文档的源代码了,一看确实这个package-use中存在我们的array关键词的,但是正文返回的描述中怎么会没有定位到array呢????让我看看是怎么个事?

2:后端代码分析 

3:使用\b正则匹配

(1)简单讲解怎么用

这里就能识别到有右括号左边的array,666~~

这种我们在array前面也加上一个\b,那么array前面的空格也能够匹配的上,amazing。

4:后端代码修改

重新处理一下我们返回正文描述的逻辑

这里我们想用indexOf()方法来直接锁定贴近括号的那个word,但是很遗憾我们的indexOf()方法不支持正则表达式,所以我们曲线救国!!!

第一步:我们把所有word前后都给他替换成空格,形成一个个独立的单词,这样我们就能锁定word所在的位置了

不难看出右边多了个括号吧!!

不多bb直接上代码。

    private String GenDesc(String content , List<Term> terms){//遍历分词结果,看哪个int firstPos = -1;for(Term term : terms){String word = term.getName();
//            firstPos = content.toLowerCase().indexOf(" " + word + " ");//避免包含关系 例:查array  结果查到ArrayList//使用正则表达式,indexOf不支持正则,我们曲线救国!!content = content.toLowerCase().replaceAll("\\b" + word + "\\b" , " " + word + " ");//匹配标点符号和空格,全部替换成空格firstPos = content.indexOf(" " + word + " ");//女少if(firstPos >= 0){break;//找到了位置,可能这个content中会包含多个term,我们只取第一个}}//用户输入的词,在正文中没有出现,虽然有点扯,但还是处理一下这种情况if(firstPos == -1){if(content.length() > 160){return content.substring(0,160) + "...";}return content;//我去测试了一下,还真有这种情况离谱!说明查的词在标题中出现了,但是正文没出现666,这里也要对正文的长度做一下判断}//截取一部分正文String desc = "";int descBeg = firstPos < 60 ? 0 : firstPos - 60;if(descBeg + 160 > content.length()){desc = content.substring(descBeg);}else {desc = content.substring(descBeg , descBeg + 160) + "...";}for(Term term : terms){String word = term.getName();desc = desc.replaceAll("(?i) " + word + " " , "<i> " + word + "</i> ");//正则忽略大小写全字段匹配,那头单词和尾单词呢?}return desc;}

http://www.dtcms.com/wzjs/92732.html

相关文章:

  • 搜房网网站跳出率什么叫关键词
  • 盐城网站制作哪家好seo是对网站进行什么优化
  • 做网站建设的销售薪水合肥网站推广优化公司
  • 网站注册了域名然后怎么做2345网址导航官网
  • 个人网站做产品亚马逊关键词搜索器
  • php动态网页设计作业南昌seo计费管理
  • 黄南网站建设首页关键词怎么排名靠前
  • 自己做个网站需要什么百度网页版
  • 策划案网站构成怎么写杭州疫情最新情况
  • 昆明网站网站建设培训推广 seo
  • 上海正规做网站公司报价四川聚顺成网络科技有限公司
  • 12月10日新闻惠州seo排名公司
  • 软件设计网站如何提高网站排名的方法
  • 沈阳市网站建设公司网络营销渠道策略有哪些
  • 专业的外贸网站建设公司价格搜索
  • 哪些网站做物流推广比较好网站运营策划书范文
  • 私人订制网站的建设的设计表国际军事最新头条新闻
  • 做网站设计工资多少钱seo软件推荐
  • 网站做优化一开始怎么做如何做品牌推广方案
  • 徐州企业网站推广中国制造网网站类型
  • 做美股的数据网站推广计划书范文
  • 百度权重高的网站有哪些广州市口碑全网推广报价
  • 专业科技网站建设安卓在线视频嗅探app
  • 做ppt介绍网站前端开发培训机构推荐
  • 小程序网站建设的公司seo的培训网站哪里好
  • 网站流量统计表格搜搜
  • 崇信县门户网站百度的特点和优势
  • 专业零基础网站建设教学在哪里短视频seo询盘获客系统软件
  • 湖南建设监理工程网站淘宝指数查询官网
  • 企业建站什么网站好百度快照替代