开发工具:微信开发者工具Stable1.05.21020210注意:目前canvas2d开发工具看不到效果,需要真机预览才可以看到效果效果图:下面是动态加载网络字体的api:写的是一个全局加载的//app.jsApp({onLaunch(){//加载全局字体for(leti=0;i
0基础Deepseek-AI编程课程
2501_90533339
AI编程人工智能
这个0基础Deepseek-AI编程班课程,专门为没有编程经验的学员设计,涵盖了AI编程的基础知识,并深入讲解算法类工具的设计思维,让学员掌握AI编程的核心技能,最终能够独立开发AI工具。课程亮点✅从零开始:即使是0基础的小白,也能快速入门AI编程,掌握核心概念。✅实战驱动:课程不仅仅讲解理论,更会带领学员动手实操,设计属于自己的AI工具。✅深入AI算法:掌握AI编程的逻辑,理解如何构建和优化AI
tar 压缩算法对比与实践指南
tar压缩效率linux建议
在Linux系统管理和开发过程中,文件压缩打包是一项常见的需求。tar作为最常用的归档工具,支持多种压缩算法,不同算法之间在压缩比、压缩速度和解压速度等方面各有特点。本文将深入分析各种压缩算法的性能特征,并提供实用的选择建议。压缩算法性能对比我们选择了五种常用的压缩方式进行测试,包括:原始tar(无压缩)gzip压缩(tar.gz)xz压缩(tar.xz)zstd压缩(tar.zst)lz4压缩(
如何选择最适合你的文档协同工具?
项目管理
在当今数字化时代,文档协同工具已成为企业提升工作效率和团队协作的关键。选择一款适合自身需求的文档协同工具不仅能够优化工作流程,还能显著提高团队的生产力。本文将深入探讨如何选择最适合你的文档协同工具,帮助你在众多选择中找到最佳方案。了解文档协同工具的核心功能文档协同工具的核心在于实现多人同时编辑和管理文档的能力。高质量的协同工具应具备实时协作、版本控制、权限管理等基本功能。此外,云端存储和同步功能也
看板软件私有化:提升企业运营效率的关键一步
项目管理软件
看板作为一种高效的项目管理工具,已被广泛应用于软件开发、产品设计、市场营销等各个领域。然而,对于许多企业来说,使用SaaS版本的看板软件存在数据安全、定制化需求、成本控制等方面的顾虑。看板软件私有化部署方案应运而生,为企业提供安全可靠、高度可定制的项目管理解决方案。一、数据安全:企业发展的生命线对于金融、医疗、政府等对数据安全要求极高的行业来说,数据泄露可能导致巨大的经济损失和声誉风险。看板软件私
深入解析Spring Cloud五大组件:构建微服务架构的核心利器
一位卑微的码农
架构springcloud微服务
引言在当今的互联网时代,微服务架构已经成为构建复杂应用的主流方式。SpringCloud作为微服务架构的佼佼者,提供了一系列强大的工具和组件,帮助开发者快速构建和部署微服务应用。本文将深入解析SpringCloud的五大核心组件,帮助你全面掌握SpringCloud的核心技术。1.SpringCloudNetflixEureka:服务注册与发现1.1什么是Eureka?Eureka是Netflix
深入了解与全面使用DeepSeek:从基础到高级应用
一位卑微的码农
人工智能大数据java-eespringboot
引言随着AI技术的发展,DeepSeek作为一款先进的智能助手,为用户提供了强大的文本生成、代码分析、数学公式处理等能力。本文将详细介绍DeepSeek的基础知识、安装配置、API调用方法以及高级应用技巧,帮助你充分挖掘这一工具的潜力。一、认识DeepSeek1.1DeepSeek简介DeepSeek是由深度求索公司开发的人工智能平台,它支持三种主要模式:基础模型(V3)、深度思考(R1)和联网搜
一文讲清产品动销是什么?如何提升动销能力?
销售管理
在现代商业环境中,“产品动销”是一个频繁出现的术语,它直接影响着企业的销售业绩和市场份额。那么,什么是产品动销?如何提升产品的动销能力呢?今天我们就来详细聊聊这个话题。所参考的工具是>>>https://s.fanruan.com/4xlkc一、什么是产品动销?产品动销,顾名思义,就是指产品从企业销售渠道出库并被终端客户购买的过程。动销的核心是产品能够在市场上得到有效销售,即被消费者实际购买和使用
阿里云EMAS:2月产品动态
阿里云移动应用开发测试推送
一、内容摘要上线EMAS定制版套餐,适合有多种移动研发工具诉求的中型企业Windvane小程序容器新增列表搜索功能云构建发布新的android镜像java-11-base,适应gradle7.0+移动测试上线一键重跑功能,支持失败的用例一键重跑移动推送支持Flutter插件,开源更易用二、产品动态
关于网页自动化工具DrissionPage进行爬虫的使用方法
web15117360223
面试学习路线阿里巴巴自动化爬虫运维
目录一.简介二.使用1.安装方式2.基本用法3.模式4.元素交互4.SessionPage5.运行JS6.结语一.简介最近在学python的过程中,发现了一个好用的爬虫库DrissionPage——一个基于python的网页自动化工具。据具官方文档(官方网址:https://drissionpage.cn/)介绍:它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和r
JavaScript设计模式 -- 状态模式
鎈卟誃筅甡
javascript设计模式状态模式
在软件开发中,很多对象的行为会随着其内部状态的变化而改变。如果将所有状态逻辑写在一个类中,代码不仅臃肿而且难以维护。**状态模式(StatePattern)**正是为了解决这个问题而设计的。通过将对象的状态封装成独立的状态类,并将状态相关的行为转移到这些状态类中,状态模式让对象在内部状态发生变化时自动切换行为,达到了将状态转换与行为实现分离的目的。本文将详细介绍状态模式的核心思想、基本结构与优缺点
conda-pack迁移虚拟环境
哎呀呀,知识来我的脑子里
conda
从源电脑中迁移anaconda的环境到目标电脑,首先两个电脑都安装了anaconda。一、源电脑的环境打包使用AnacondaPrompt操作1.安装conda-pack工具condainstallconda-pack2.确定环境condaenvlist找到你想要打包环境名。比如我的环境名是Py363.打包环境condapack-nPy36-oPy36.tar.gz4.将打包环境拷贝到U盘环境打包
如何在不依赖函数调用功能的情况下结合工具与大型语言模型
Jason9510
语言模型人工智能
当大型语言模型(LLM)原生不支持函数调用功能时,如何实现智能工具调度?本文通过自然语言解析+结构化输出控制的方法来实现。GitHub代码地址核心实现步骤定义工具函数使用@tool装饰器声明可调用工具:fromlangchain_core.toolsimporttool@tooldefmultiply_by_max(a:int,b:list[int])->int:"""将a乘以b列表中的最大值""
解决Mybatis-plus与springboot3.0+、spring6.0+的兼容性问题
lian潋湄
mybatis
根据mybatis-plus学习框架时,一直都会报错如下信息:当时并不知道这几个工具之间存在版本兼容性问题,就一直苦于找不到合适的解决方法,于是便上网开始了疯狂的搜索,发现改了好多地方还是不行。偶然间了解到了工具之间版本是存在兼容性问题的,一开始问ChatGPT也并没有给出正确的回答,于是我去了最最权威的官网查看,终于发现了问题所在:mybatis-plus官网给出的mybatis-plus插件依
Flux【Lora模型】:效率太高了,超写实逼真黑悟空Flux Lora它来了
AI绘画师-海绵
uiAIGC人工智能3d平面设计计算机
在大家热心谈论黑悟空的时候,AI绘画领域也不甘落后,结合最近火爆的AI绘画工具Flux,各路大神第一时间就训练出了Flux的loar版本,今天我们就来体验感受一下大神“AIGAME熊熊”推出的Flux版本的loar模型:FLUX1-超写实逼真黑悟空模型下载地址(文末网盘地址也可获取)****触发词:aiyouxiketang下面是作者推荐的提示词:amaninarmorwithabeardanda
vite和react有什么区别?
因上精进,果上随缘
Javascriptreact.jsjavascript前端
Vite和React在功能和定位上有明显的区别。Vite是一个基于浏览器原生ESimports的开发服务器和构建工具,旨在弥合当前和下一代Web开发之间的差距。它专注于为开发人员和现代Web项目提供更快、更高性能的体验。Vite的主要特性包括快速的冷启动、及时的热模块更新和真正的按需加载。它使用原生ESM作为模块系统,利用浏览器对ESM的支持,在开发时无需打包,从而实现了极速的启动速度和热模块替换
Java中JWT(JSON Web Token)的运用
华农第一蒟蒻
java修炼javajson前端springboottoken
目录1.JWT的结构2.JWT的优点3.JWT的流转过程4.具体案例一、项目结构二、依赖配置三、用户模型四、JWT工具类五、JWT请求过滤器六、安全配置七、身份验证控制器八、测试JWTJWT(JSONWebToken)是一种开放标准(RFC7519),用于在网络应用环境间以紧凑的方式安全地传递信息。JWT可以被用作身份验证和信息交换的手段,特别适合用于前后端分离的应用程序。1.JWT的结构JWT由
【第15章:量子深度学习与未来趋势—15.3 量子深度学习在图像处理、自然语言处理等领域的应用潜力分析】
再见孙悟空_
#【深度学习・探索智能核心奥秘】深度学习机器学习人工智能音视频自然语言处理量子深度学习量子学习未来
一、开篇:为什么我们需要关注这场"量子+AI"的世纪联姻?各位技术爱好者们,今天我们要聊的这个话题,可能是未来十年最值得押注的技术革命——量子深度学习。这不是简单的"1+1=2"的物理叠加,而是一场可能彻底改写AI发展轨迹的范式转移。想象这样一个场景:你现在训练一个GPT-5级别的模型,不需要耗费价值上亿美元的算力资源,不需要等待数周的训练时间,甚至不需要纠结于模型参数是否过拟合。这就是量子深度学
iotop 命令详解:深入分析系统 I/O 性能
测试不打烊
性能测试linux运维压力测试
iotop是Linux系统中一个非常有用的命令行工具,类似于top命令,但它专门用于监控进程的磁盘I/O活动。它通过显示每个进程的I/O操作,可以帮助我们定位并分析那些占用过多磁盘资源的进程。本文将详细介绍iotop命令的使用方法、典型输出示例、各项指标的详细解析,并结合异常指标详细分析系统I/O性能问题的解决过程。一、iotop命令使用方法详解iotop命令的主要功能是显示每个进程的I/O读写速
网络瓶颈分析与排查:性能测试中的隐秘敌人
测试不打烊
性能测试网络压力测试
性能测试问题定位-网络瓶颈分析与案例解析在性能测试中,网络往往是性能瓶颈的一个关键因素。网络延迟、带宽、连接数等问题都可能影响系统的整体性能。在本文中,我们将结合性能测试的过程,从网络监控、常见的网络瓶颈问题以及如何使用Linux工具(如netstat、iftop、ping、traceroute等)进行详细的瓶颈定位。我们还会通过实际案例进行说明,帮助你更好地理解网络瓶颈的排查方法。1.网络瓶颈的
vue h函数
月下第一风流
vue.jsjavascript前端
在Vue.js中,h函数是用于在渲染函数中创建虚拟DOM元素的主要工具。但是,除了h函数之外,还有其他一些辅助函数和工具可以用于渲染函数和组件开发。以下是一些常见的工具和函数:createApp:用于创建Vue应用程序的实例。在Vue3中,这是启动应用的主要方法。defineComponent:用于定义一个组件。在Vue3中,这是一种定义组件的选项式API的替代方法。resolveComponen
vue3 - 【完整源码】实现网页整屏大量图片、div 容器的自适应瀑布流布局,宽高度不固定的列表式瀑布流展示效果(高效无 BUG 网站瀑布流效果,超详细代码注释,可根据需求快速进行改造!)
街尾杂货店&
前端组件与功能(开箱即用)vue3瀑布流布局详细教程vue3图片列表瀑布流组件宽高不固定的div实现瀑布vue3最好用的瀑布流组件插件vue3瀑布流布局完整示例源码
效果图在vue3.js网站项目中,实现图片、普通div容器的瀑布流效果完整示例,支持动态加载数据、自定义一行放多少个、各列之间的间距等等!你可以直接复制组件源码,按照配置文档稍微改改就能用到你的项目中去了,比绝大部分文章提供的示例都要流畅、快速。核心组件源码组件的存放位置无所谓,最后使用的时候能正确引入就行了。创建瀑布流组件Waterfall.vue,复制代码。
redis压力测试
weixin_33845881
数据库
redis自带的redis-benchmark工具Redis自带了一个叫redis-benchmark的工具来模拟N个客户端同时发出M个请求。(类似于Apacheab程序)。你可以使用redis-benchmark-h来查看基准参数。1使用方法redis-benchmark[-h][-p][-c][-n[-k]序号选项描述默认值1-h指定redisserver主机名localhost2-p指定re
apache 安装linux windows
墙头上一根草
apacheinuxwindows
linux安装Apache 有两种方式一种是手动安装通过二进制的文件进行安装,另外一种就是通过yum 安装,此中安装方式,需要物理机联网。以下分别介绍两种的安装方式
通过二进制文件安装Apache需要的软件有apr,apr-util,pcre
1,安装 apr 下载地址:htt
fill_parent、wrap_content和match_parent的区别
Cb123456
match_parentfill_parent
fill_parent、wrap_content和match_parent的区别:
1)fill_parent
设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
2) wrap_conte
网页自适应设计
天子之骄
htmlcss响应式设计页面自适应
网页自适应设计
网页对浏览器窗口的自适应支持变得越来越重要了。自适应响应设计更是异常火爆。再加上移动端的崛起,更是如日中天。以前为了适应不同屏幕分布率和浏览器窗口的扩大和缩小,需要设计几套css样式,用js脚本判断窗口大小,选择加载。结构臃肿,加载负担较大。现笔者经过一定时间的学习,有所心得,故分享于此,加强交流,共同进步。同时希望对大家有所
[sql server] 分组取最大最小常用sql
一炮送你回车库
SQL Server
--分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( col1 int, col2 int, Fcount int)insert into tbselect 11,20,1 union allselect 11,22,1 union allselect 1
ImageIO写图片输出到硬盘
3213213333332132
javaimage
package awt;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imagei
自己的String动态数组
宝剑锋梅花香
java动态数组数组
数组还是好说,学过一两门编程语言的就知道,需要注意的是数组声明时需要把大小给它定下来,比如声明一个字符串类型的数组:String str[]=new String[10]; 但是问题就来了,每次都是大小确定的数组,我需要数组大小不固定随时变化怎么办呢? 动态数组就这样应运而生,龙哥给我们讲的是自己用代码写动态数组,并非用的ArrayList 看看字符
pinyin4j工具类
darkranger
.net
pinyin4j工具类Java工具类 2010-04-24 00:47:00 阅读69 评论0 字号:大中小
引入pinyin4j-2.5.0.jar包:
pinyin4j是一个功能强悍的汉语拼音工具包,主要是从汉语获取各种格式和需求的拼音,功能强悍,下面看看如何使用pinyin4j。
本人以前用AscII编码提取工具,效果不理想,现在用pinyin4j简单实现了一个。功能还不是很完美,
StarUML学习笔记----基本概念
aijuans
UML建模
介绍StarUML的基本概念,这些都是有效运用StarUML?所需要的。包括对模型、视图、图、项目、单元、方法、框架、模型块及其差异以及UML轮廓。
模型、视与图(Model, View and Diagram)
&
Activiti最终总结
avords
Activiti id 工作流
1、流程定义ID:ProcessDefinitionId,当定义一个流程就会产生。
2、流程实例ID:ProcessInstanceId,当开始一个具体的流程时就会产生,也就是不同的流程实例ID可能有相同的流程定义ID。
3、TaskId,每一个userTask都会有一个Id这个是存在于流程实例上的。
4、TaskDefinitionKey和(ActivityImpl activityId
从省市区多重级联想到的,react和jquery的差别
bee1314
jqueryUIreact
在我们的前端项目里经常会用到级联的select,比如省市区这样。通常这种级联大多是动态的。比如先加载了省,点击省加载市,点击市加载区。然后数据通常ajax返回。如果没有数据则说明到了叶子节点。 针对这种场景,如果我们使用jquery来实现,要考虑很多的问题,数据部分,以及大量的dom操作。比如这个页面上显示了某个区,这时候我切换省,要把市重新初始化数据,然后区域的部分要从页面
Eclipse快捷键大全
bijian1013
javaeclipse快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+En
js 笔记 函数
征客丶
JavaScript
一、函数的使用
1.1、定义函数变量
var vName = funcation(params){
}
1.2、函数的调用
函数变量的调用: vName(params);
函数定义时自发调用:(function(params){})(params);
1.3、函数中变量赋值
var a = 'a';
var ff
【Scala四】分析Spark源代码总结的Scala语法二
bit1129
scala
1. Some操作
在下面的代码中,使用了Some操作:if (self.partitioner == Some(partitioner)),那么Some(partitioner)表示什么含义?首先partitioner是方法combineByKey传入的变量,
Some的文档说明:
/** Class `Some[A]` represents existin
java 匿名内部类
BlueSkator
java匿名内部类
组合优先于继承
Java的匿名类,就是提供了一个快捷方便的手段,令继承关系可以方便地变成组合关系
继承只有一个时候才能用,当你要求子类的实例可以替代父类实例的位置时才可以用继承。
在Java中内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类。
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相
盗版win装在MAC有害发热,苹果的东西不值得买,win应该不用
ljy325
游戏applewindowsXPOS
Mac mini 型号: MC270CH-A RMB:5,688
Apple 对windows的产品支持不好,有以下问题:
1.装完了xp,发现机身很热虽然没有运行任何程序!貌似显卡跑游戏发热一样,按照那样的发热量,那部机子损耗很大,使用寿命受到严重的影响!
2.反观安装了Mac os的展示机,发热量很小,运行了1天温度也没有那么高
&nbs
读《研磨设计模式》-代码笔记-生成器模式-Builder
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示(GoF)
* 个人理解:
* 构建一个复杂的对象,对于创建者(Builder)来说,一是要有数据来源(rawData),二是要返回构
JIRA与SVN插件安装
chenyu19891124
SVNjira
JIRA安装好后提交代码并要显示在JIRA上,这得需要用SVN的插件才能看见开发人员提交的代码。
1.下载svn与jira插件安装包,解压后在安装包(atlassian-jira-subversion-plugin-0.10.1)
2.解压出来的包里下的lib文件夹下的jar拷贝到(C:\Program Files\Atlassian\JIRA 4.3.4\atlassian-jira\WEB
常用数学思想方法
comsci
工作
对于搞工程和技术的朋友来讲,在工作中常常遇到一些实际问题,而采用常规的思维方式无法很好的解决这些问题,那么这个时候我们就需要用数学语言和数学工具,而使用数学工具的前提却是用数学思想的方法来描述问题。。下面转帖几种常用的数学思想方法,仅供学习和参考
函数思想
把某一数学问题用函数表示出来,并且利用函数探究这个问题的一般规律。这是最基本、最常用的数学方法
pl/sql集合类型
daizj
oracle集合typepl/sql
--集合类型
/*
单行单列的数据,使用标量变量
单行多列数据,使用记录
单列多行数据,使用集合(。。。)
*集合:类似于数组也就是。pl/sql集合类型包括索引表(pl/sql table)、嵌套表(Nested Table)、变长数组(VARRAY)等
*/
/*
--集合方法
&n
[Ofbiz]ofbiz初用
dinguangx
电商ofbiz
从github下载最新的ofbiz(截止2015-7-13),从源码进行ofbiz的试用
1. 加载测试库
ofbiz内置derby,通过下面的命令初始化测试库
./ant load-demo (与load-seed有一些区别)
2. 启动内置tomcat
./ant start
或
./startofbiz.sh
或
java -jar ofbiz.jar
&
结构体中最后一个元素是长度为0的数组
dcj3sjt126com
cgcc
在Linux源代码中,有很多的结构体最后都定义了一个元素个数为0个的数组,如/usr/include/linux/if_pppox.h中有这样一个结构体: struct pppoe_tag { __u16 tag_type; __u16 tag_len; &n
Linux cp 实现强行覆盖
dcj3sjt126com
linux
发现在Fedora 10 /ubutun 里面用cp -fr src dest,即使加了-f也是不能强行覆盖的,这时怎么回事的呢?一两个文件还好说,就输几个yes吧,但是要是n多文件怎么办,那还不输死人呢?下面提供三种解决办法。 方法一
我们输入alias命令,看看系统给cp起了一个什么别名。
[root@localhost ~]# aliasalias cp=’cp -i’a
Memcached(一)、HelloWorld
frank1234
memcached
一、简介
高性能的架构离不开缓存,分布式缓存中的佼佼者当属memcached,它通过客户端将不同的key hash到不同的memcached服务器中,而获取的时候也到相同的服务器中获取,由于不需要做集群同步,也就省去了集群间同步的开销和延迟,所以它相对于ehcache等缓存来说能更好的支持分布式应用,具有更强的横向伸缩能力。
二、客户端
选择一个memcached客户端,我这里用的是memc
Search in Rotated Sorted Array II
hcx2013
search
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given ta
Spring4新特性——更好的Java泛型操作API
jinnianshilongnian
spring4generic type
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装JDK
liuxingguome
centos
1、行卸载原来的:
[root@localhost opt]# rpm -qa | grep java
tzdata-java-2014g-1.el6.noarch
java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
[root@localhost
二分搜索专题2-在有序二维数组中搜索一个元素
OpenMind
二维数组算法二分搜索
1,设二维数组p的每行每列都按照下标递增的顺序递增。
用数学语言描述如下:p满足
(1),对任意的x1,x2,y,如果x1<x2,则p(x1,y)<p(x2,y);
(2),对任意的x,y1,y2, 如果y1<y2,则p(x,y1)<p(x,y2);
2,问题:
给定满足1的数组p和一个整数k,求是否存在x0,y0使得p(x0,y0)=k?
3,算法分析:
(
java 随机数 Math与Random
SaraWon
javaMathRandom
今天需要在程序中产生随机数,知道有两种方法可以使用,但是使用Math和Random的区别还不是特别清楚,看到一篇文章是关于的,觉得写的还挺不错的,原文地址是
http://www.oschina.net/question/157182_45274?sort=default&p=1#answers
产生1到10之间的随机数的两种实现方式:
//Math
Math.roun
oracle创建表空间
tugn
oracle
create temporary tablespace TXSJ_TEMP
tempfile 'E:\Oracle\oradata\TXSJ_TEMP.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent m
使用Java8实现自己的个性化搜索引擎
yangshangchuan
javasuperword搜索引擎java8全文检索
需要对249本软件著作实现句子级别全文检索,这些著作均为PDF文件,不使用现有的框架如lucene,自己实现的方法如下:
1、从PDF文件中提取文本,这里的重点是如何最大可能地还原文本。提取之后的文本,一个句子一行保存为文本文件。
2、将所有文本文件合并为一个单一的文本文件,这样,每一个句子就有一个唯一行号。
3、对每一行文本进行分词,建立倒排表,倒排表的格式为:词=包含该词的总行数N=行号