开发工具:微信开发者工具Stable1.05.21020210注意:目前canvas2d开发工具看不到效果,需要真机预览才可以看到效果效果图:下面是动态加载网络字体的api:写的是一个全局加载的//app.jsApp({onLaunch(){//加载全局字体for(leti=0;i
halcon的Blob分析方法
斯人已去忆犹在
计算机视觉人工智能图像处理
阈值分割法图像分割常用方法就是阈值分割法,它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤。阈值分割法是一种传统的最常用的图像分割方法,特别适用于目标和背景占据不同灰度级范围的图像。阈值分割是一种按图像像素灰度幅度进行分割的方法,把图像的灰度分成不同的等级,然后用设置灰度门限(阈值)的方法确定有意义的区域或要分割物体的边界。阈值分割的优点是计算简单、运算效率较高、速度快。阈值分割的几个难
golang - context包使用示例 以及 底层实现
切尔诺贝尔
golanggo上下文context并发
文章目录1.context常用方法,以及各种适用于什么场景1.1context含有的方法1.2方法适用场景和伪代码示例1.2.1值传递:比如gin框架中用来传递key,value的值,自己简单示例如下1.2.2超时控制-timeout:http请求设置超时时间1.2.3,超时控制-deadline:比如文件io或者网络io等耗时操作,可以查看剩余的时间是否充足,决定是否进行下一步操作1.2.4.取
vue字符串的常用方法,截取字符串,获取字符串长度,检索字符串
luckyext
vue.jsjavascript前端
1.使用substr方法截取字符串letstr="12345";letpart=str.substr(0,3);//截取从索引0开始到索引3的子字符串console.log(part);//"123"2.获取字符串长度JavaScript中的字符串有一个length属性,该属性可以用在VUE获取字符串的长度conststr='hello';str.length输出结果:53.检索字符串是否包含特定
【MySQL】mysqldump使用方法
m0_74825152
面试学习路线阿里巴巴mysqloracle数据库
本文介绍MySQL数据库mysqldump常用方法。MySQL数据库mysqldump常用方法导出整个数据库(包括数据库中的数据)。mysqldump-uusername-pdbname>dbname.sql导出数据库结构(不含数据)。mysqldump-uusername-p-ddbname>dbname.sql导出数据库中的某张数据表(包含数据)。mysqldump-uusername-pdb
Python爬虫获取股市数据,有哪些常用方法?
股票程序化交易接口
量化交易股票API接口Python股票量化交易python爬虫股市数据网页抓取api股票量化接口股票API接口
Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>网页直接抓取法Python中有许多库可用于解析HTML页面来获取股市数据。例如BeautifulSoup,它能够轻松地从网页的HTML结构中提取出想要的数据。当我们定位到包含股市数据的网页时,利用BeautifulSoup可以根据HT
Java 核心与应用:Java 输入输出流概述
星核日记
《Java核心与应用》java开发语言
目录Java核心与应用:Java输入输出流概述主题:Java核心与应用:引言学习目标1.Java输入输出流基础1.1输入输出流的概念1.1.1流的分类1.1.2常用输入输出流接口1.2输入输出流的接口继承图1.3常用输入输出流接口的方法1.3.1`InputStream`常用方法1.3.2`OutputStream`常用方法1.4装饰器模式在IO体系中的应用1.4.1装饰器模式示例1.4.2装饰器
C#学习之DateTime 类
零壹电子
C#DateTimec#学习开发语言DateTime
目录一、DateTime类的常用方法和属性的汇总表格二、常用方法程序示例1.获取当前本地时间2.获取当前UTC时间3.格式化日期和时间4.获取特定部分的时间5.获取时间戳6.获取时区信息三、总结一、DateTime类的常用方法和属性的汇总表格在C#中,获取本地系统时间非常简单。可以使用DateTime类来获取当前日期和时间。DateTime类提供了丰富的属性和方法,用于处理日期和时间。常用的方法包
C#学习之数据转换
零壹电子
C#数据类型转换学习c#数据类型转换
目录一、创作说明二、数据类型之间的转换1.数据类型之间的转换表格2.代码示例三、进制之间的转换1.进制之间的转换表格2.代码示例四、ASCII编码和字符之间的转换1.ASCII编码和字符之间的转换表格2.代码示例五、总结一、创作说明C#大多数时候都是和各种数据打交道,本文汇总数据转换的表格,包括常用方法、代码示例以及详细描述。涵盖了数据类型之间的转换、进制之间的转换、ASCII编码和字符之间的转换
python中os的常用方法
神即道 道法自然 如来
pythonpython
os.path常用方法:os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")改变当前脚本工作目录;相当于shell下cdos.curdir返回当前目录:('.')os.pardir获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2')可生成多层递归目录os.removedirs('di
22-反射
菩提老师
Java从零到高薪就业开发语言
反射学习目标:掌握反射四大类的含义掌握反射四大类的常用方法掌握得到Class类的三种方式第1章:什么是反射反射就学习四个类就OK。反射就是把Java类中的各种成分映射成一个个的java对象。例如,一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。简单一句话,反射就是为了拿到这个类的所有信息:构造函数、成员、方法等,拿到之后就可以做想做
从零到一:开发并上线一款极简记账本小程序的完整流程
萧鼎
软硬件与前后端详解小程序
从零到一:开发并上线一款极简记账本小程序的完整流程目录前言需求分析与功能设计2.1目标用户分析2.2核心功能设计2.3技术栈选择开发环境搭建3.1微信开发者工具安装与配置3.2项目初始化3.3版本控制与协作工具前端开发4.1页面结构与布局4.2组件化开发4.3数据绑定与事件处理后端开发5.1数据库设计与搭建5.2接口设计与实现5.3用户认证与数据安全前后端联调6.1接口调试6.2数据交互与状态管理
Java 字符编码与解码:深入理解 Charset 类
magic 245
java基础java开发语言
目录引言一、什么是字符集(Charset)?二、Charset类的核心功能1.获取字符集实例2.编码与解码示例1:字符串转字节数组示例2:处理不同字符集的乱码问题3.字符集检测与支持三、Charset类的常用方法1.静态方法(1)staticCharsetforName(StringcharsetName)(2)staticCharsetdefaultCharset()(3)staticboole
【Java基础-44.7】Java 中的 Map 集合接口:实现类、继承关系及常用方法详解
AllenBright
#Java基础java开发语言
在Java中,Map是一种非常重要的集合接口,用于存储键值对(Key-ValuePair)。它提供了高效的键值查找和操作能力,广泛应用于各种场景中。本文将深入探讨Map接口的实现类、继承关系以及常用方法,帮助读者更好地理解和使用Map。1.Map接口概述Map是Java集合框架中的一员,位于java.util包中。它表示一组键值对的集合,其中每个键(Key)都是唯一的,而值(Value)可以重复。
在VS Code中渲染 Markdown 并保存为 PDF
AndrewHZ
pdf
在VisualStudioCode(VSCode)中渲染Markdown并保存为PDF,可以通过以下步骤实现。提供两种常用方法,选择适合你的方案:方法一:使用插件直接导出(推荐)1.安装必要插件MarkdownPreviewEnhanced(增强预览)提供强大的Markdown渲染和导出功能。在VSCode扩展商店搜索并安装。MarkdownPDF(直接导出为PDF)支持一键将Markdown文件
功能测试常用方法概述
机器视觉小小测试员
功能测试
功能测试常用方法概述一、功能测试简介功能测试,亦称黑盒测试,其核心目标是验证软件功能是否按照需求规格说明书的要求准确运行,即确保软件各功能模块均能正常运作。在测试过程中,测试人员无需深入了解软件内部结构,仅依据需求规格说明书来设计测试用例,重点检验功能的正确性,涵盖输入数据、预期结果、界面操作、业务流程等多个方面。二、测试方法概述测试方法是在软件开发过程中用于验证和确认软件产品质量的一系列技术和策
javascript中Object对象常用方法总结
善良的农场主
javascript
1.Object.createObject.create的语法:Object.create(proto,[propertiesObject]),创建一个对象,新创建的对象的prototype指向第一个参数,第二个参数是为新创建对象添加属性proto是原型对象propertiesObject是属性的配置在详解Object.create之前,我们先回忆一下常用的创建对象的方法:1.{},2.newOb
企业微信-会话内容存档-全流程
Defry
Java企业微信
RSA2048秘钥对生成SSL在线工具-在线密钥对生成-在线RSA、DSA、ECDSA公私钥生成-SSLeye官网1、下载jdk和so/dll获取会话内容-接口文档-企业微信开发者中心2、Windows中将ddl放到C:\Windows\system32PS:网上也有一些其他的解决办法可以参考放的地方不对就可能出现:noWeWorkFinanceSdkinjava.library.path3、Li
uniapp编辑的代码在开发者工具里面不能得到及时的更新
真的不想写实验
uni-app前端微信小程序
最近接手了一个超多坑的项目,uniapp编写的微信小程序没法直接在里面编译,因为这个文件是自动生成的,里面的内容非常之乱但是我如果在我外面的文件进行编译,发现根本编译不动,无论是改样式还是该数据,微信开发者工具里面的页面据没有任何变化经过本师傅一上午的忙碌,终于发现了好几个报错,这个报错我之前为什么没有发现呢,是因为之前的我是直接把项目放到开发者工具里面了,而这次,我是把项目放到了hbuilder
tkinter小部件3
复习法处理好
tkinter学习笔记python
8.顶层窗口tk.Toplevel功能类似于根窗口,产生一个独立于根窗口的新窗口,它的常用方法和根窗口相同关闭toplevel窗口不会影响到根窗口toplevel.pyimporttkinterastkfromtkinterimportttkroot=tk.Tk()root.title(‘根窗口root’)toplevel=tk.Toplevel()toplevel.title(‘新窗口tople
ORACLE——DATAPUMP常用方法
风过无痕1010
ORACLELinux
一、准备工作1.创建目录eg:创建dumpdata目录SQL>createdirectorydumpdataas‘/data01/dumpdir’;查看创建的目录信息SQL>select*fromdba_directories;OWNERDIRECTORY_NAMEDIRECTORY_PATHORIGIN_CON_ID----------------------------------------
微信小程序的制作
出门喝奶茶
笔记微信小程序小程序
制作微信小程序的过程大致可以分为几个步骤:从环境搭建、项目创建,到开发、调试和发布。下面我会为你简要介绍每个步骤。1.准备工作在开始开发微信小程序之前,你需要确保你已经完成了以下几个步骤:注册微信小程序账号:访问微信公众平台(https://mp.weixin.qq.com),注册一个微信小程序账号。注册完成后,你会获得一个小程序的AppID。安装开发工具:下载并安装微信开发者工具。微信开发者工具
【Python】字典
Guiat
Pythonpython
个人主页:GUIQU.归属专栏:Python文章目录1.字典概述2.字典的创建与初始化2.1直接使用花括号创建2.2使用`dict()`构造函数创建2.3字典推导式创建3.字典的基本操作3.1访问字典中的值3.2修改和添加键值对3.3删除键值对4.字典的遍历4.1遍历键4.2遍历值4.3遍历键值对5.字典的常用方法5.1`update()`方法5.2`setdefault()`方法5.3`clea
JavaSE之常用API(2)(知识点小总结)
幽默小吴
java算法数据结构python开发语言
常用API(2)一、Random1、软件包java.util2、构造方法构造器描述Random()创建一个随机数生成器,从0开始3、常用方法类型与出参方法描述intnextInt()在int范围内随机生成一个数据intnextInt(intbound)在0(包含)到指定值(不包含)范围内随机生成一个整数doublenextDouble()在0(包含)到1(不包含)之间随机生成一个小数4、方法应用生
python math模块和random模块常用方法介绍
默默前行的旅者
random模块:random模块主要包含生成伪随机数的各种功能变量和函数,该模块提供了如下几个常用函数:random.seed():指定种子来初始化伪随机数生成器random.randrange():返回才从start开始到stop结束,步长为step的随机数,random.randint():生成一个范围为a<=N<=b的随机数random.choice(seq):从seq中随机抽取一个元素,
四、Python之math及random的常用方法
汽车小卓
语言篇#Pythonpython
一、mathImportmathmath.pi:圆周率math.e:自然常数math.ceil(1.7):向上取整,2math.floor(1.7):向下取整,1math.pow(15,3):指数运算,15的3次方math.log(3):默认底数为e,log(3)math.log(100,10):第二个参数为底数math.sqrt(4):平方根计算math.sin():sin运算math.cos(
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=行号