开启智能安全搜索之旅:密文全文搜索技术的研究开发和应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangliuxue/article/details/79860457

密文全文搜索技术的研究开发和应用

张留学[1]  张焕中[2]

1. 引言

信息技术的飞速发展,对信息的安全提出了很高的要求,如何实现信息安全,从信息的安全存储,安全传输到信息的安全检索,是云计算时代必须面临的挑战。虽然在全文检索技术和加密算法领域,已有很好的商业产品出现,但如何高效的检索这些加密的非结构化数据,还是一个亟待解决的难题。

多语种和密文全文搜索系统,构建一种基于语义树的全文搜索系统,在此基础上展开基于加密信息的全文搜索,在信息资源加密存储的前提下,通过对其构建密文全文索引,满足人们对于信息安全的需求。

人工智能可为许多行业带来巨大潜力,语义理解和智能搜索技术方兴未艾,借助独有的语义树索引技术实现一体化的多语种的自然语言理解服务,结合知识图谱实现智能化的搜索服务。

多语种和密文全文搜索系统旨在帮助企业更经济、更轻松地满足信息安全和信息搜索工作要求。统一的语义树索引处理技术,使其更易于多语种全文搜索服务的部署和使用,结合自主研发的密文索引算法实现信息的安全检索,以满足人们对于加密信息安全检索工作需求。结合分布式爬虫服务、文档信息索引服务实现成套的技术解决方案,并提供相关API接口和技术支持,帮助开发、部署和发展智能全文搜索解决方案,并将这些解决方案与其他业务和技术应用集成。

关键词

语义树索引 密文索引 zy6消息摘要算法 sm3 sha256 utf8 全文搜索 密文搜索 可加密的搜索机制

约定

分离码算法 flcode前端 浏览器和客户端

2. 背景

搜索引擎是信息时代的基础服务之一,搜索引擎服务的核心为全文检索。常用的全文检索提供基于关键词的查找。研究一种基于句子的查找是研发的动机之一。

全文检索主要分为两个部分:文章索引和查找。传统的文章索引主要指的是关键词的索引。简单来说就是,索引程序通过扫描文章,为每一个词建立一个索引,记录该词在文章中出现的次数和位置,查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。

全文检索系统是按照全文检索理论建立起来的,用于提供全文检索服务的软件系统。一般来说,全文检索需要具备建立索引和提供查询的基本功能。功能上,全文检索系统核心具有建立索引、处理查询返回结果集、增加索引、优化索引结构等等功能,外围则由各种不同应用具有的功能组成。结构上,全文检索系统核心具有索引引擎、查询引擎、文本分析引擎、对外接口等等,加上各种外围应用系统等等共同构成了全文检索系统。

全文信息搜索是信息时代的基本服务,文本信息检索是发展较快也较成熟的,其他的信息检索技术,往往也需要文本信息检索的支持。虽然搜索引擎已不仅仅局限于对文本进行检索,文本信息检索仍然是大部分搜索引擎的基础。常用的全文索引引擎有Lucence,其主要是通过分词技术,结合文档关键词倒排序表实现全文信息的索引。

在信息检索系统的具体实现中,往往需要快速地找到文档中所包含的关键词。相比文档来说,关键词的个数是较少的,因此,以关键词为核心对文档进行索引是更加可行的方法。这就是信息检索领域常用的倒排文档索引技术。倒排文档索引可以被看成一个链表数组,每个链表的表头包含关键词,其后续单元则包括所有包括这个关键词的文档标号,以及一些其他信息。这些信息可以是文档中该词的频率,也可以是文档中该词的位置等信息。

倒排文档索引的优势不仅在于关键词个数少带来的检索效率提高,还在于其特别易于同信息检索技术结合。在实际应用中,查询中所包含的关键词往往是很少的,完全不包含查询中的所有关键词的文档,一般来说是不会被列入结果集的。因此,以关键词为主键进行索引,只需要用查询中包括的关键词,进行几次简单的查询就能够找出所有可能的文档。

全文索引主要技术是倒排文档索引技术,实质是词或者字的索引,结合特定的词典形成特定的关键词索引。

分词也是全文索引的关键技术之一。分词就是将连续的字序列,按照一定的规范重新组合成词序列的过程。中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。分词技术的主要目的是减小倒排序表的存储,提高索引的效率。缺点是需要针对性的给出不同字典和分词的方法,缺乏统一的尺度。

对于常用的全文搜索来说,基本的功能就是分词加上倒排序文档。搜索引擎的服务随着信息量的增大,检索和存储量大,存在索引时间长,搜索速度慢等问题。   

常规的全文检索对于分词技术和字典的依赖,使得全文搜索实施的难度加大。对于不同语种需要不同的字典和分词技术,对于同一语种不同专业的文档也需要不同的分词技术和字典,不同字典和分词技术也影响了系统的通用性。

传统的关键词搜索在语义理解方面支持存在极大的不足,这也是研发原因之一。研发支持所用语言的,实现智能和更懂你的搜索。

采用对文本信息进行特征序列的编码,形成相关的语义树,实质上提供提供一种基于语义树的索引方法和系统,不再依赖于分词、适合不同语种的全文搜索引擎,具有存储空间小,索引速度和查询速度快等特点。

3. 系统设计要求

多语种和密文全文搜索是一款基于语义树的全文检索服务系统,对语言的支持采用统一的标准,支持语言仅仅需要以下特点的:有最小的文字单元,语句可以切分。

1、多语种支持。采用语义树索引技术,支持不同语言文字的全文检索服务,具有占用少,搜索效率高的特点,搜索精准度高,具有上下文的联想提示功能。

2、密文搜索支持。支持加密文档的加密搜索服务。

3、智能语义理解。

和传统的关键词全文搜索对比:

1.  对于不同语言的支持,采用统一的算法实现,适合多语种的混合或者单一的查找;不论哪种语系,均可同样处理;

2.  无需字典、停止词表等等,没有重建索引的必要,无需担心新词的索引处理;

3.  对于密文检索的支持;支持全程安全处理,信息索引采用密文加散列的形式保存,通过索引不能还原信息,文档加密支持第三方,安全可靠;

4.  智能语义理解,具有语料的自动分析功能,能自动的提取语义单元,实现NLP和后续的关联查找;提供多语种的NLP服务,支持语义理解结合最小语义知识库,提供智能化的搜索服务。

 

4. 主要技术研发

4.1 关键技术

1、语义树全文搜索引擎技术

多语种和密文全文搜索关键技术包括:信息安全算法,信息搜索算法等。语义特征编码技术是全文搜索的核心算法,数字指纹算法在其中起到关键性的作用;密文搜索的关键算法是分离码算法。

2、基于路径散列的消息摘要技术

通过信息分组、路径散列计算、结果序列调和散列,结合输出字符串的设定,从而输出消息摘要。本技术可以扩展和衍生不同的摘要算法,不同的分组,不同的变换序列,不同的路径选择算法,不同的散列算法均可以产生不同的消息摘要。

3、语义联想记忆技术

通过语义标识ID的链式存储,构建语义上下关联的关系,实现对语句的上下文搜索,从而实现一定程度的语义会话功能。系统主要用于人工智能领域的语义理解、智能机器人的人机对话、自然语言的语句搜索。

4、分离编解码技术

利用数字不同进制的转换结合码表,形成信息变换序列和位数序列分离,实现信息的编码;结合码表、变换序列和位数序列来解码实现信息还原的方法。

4.2技术路线

系统由全文索引系统、索引安全算法、信息安全系统组成。全文索引系统采用基于语义树的索引系统组成,索引安全算法和信息安全系统采用分离码算法实现。

1、全文检索路线:

1)文档的导入,以文档中的句子为单位,通过对句子中文字信息的增量hash编码,构建句中文字的序列信息特征编码;

2)语义树的构建,基于文字的表示习惯,以语句为单位构建文字和文字之间的前后关系;

3)基于文字的编码规定,结合文字特有的分隔符先对语句进行切分,后对语句进行特征序列的编码处理;

4)对组建语义树的编码范围给定,构建单一语种、多语种组合甚至不分语种的语义树;

5)针对语句或者语句片段的查找,通过计算查找内容的特征序列,在语义树中查找记录,主要分以下步骤:1)特征序列的最大化查找;2)特征序列的递减查找;3)语句特征序列的关联文档或者处理方法查找;

2、分离编解码路线

1)制定码表:确定处理信息的单元位数,确定转换的进制,定义码表。

2)编码:根据要求读取64位(或者128位,或者其他)赋值给整数,然后根据要求转换成相应的进制(对应的数字用表示码表的字符表示),转换结果记录到变换序列,转换后的位数记录到位数序列,一直持续到转换完毕,最后形成两个部分。变换序列的字符一定是码表的字符,位数序列主要记载转换按位对应在变换记录中的长度。

3)解码:读取位数信息,按位数读取相关的字符,查询码表变换成相应的数字,结合原有的进制定义,转换成整数,存入到文件中,一直到转换完毕,实现信息的解码

3、密文索引路线

密文索引安全算法采用分离编解码算法,文档的加解密可以采用第三方算法。密文索引采用先对文章进行语句的分割,以语句为单位进行加密,加密后语句之间用标点符号分割,然后提供给多语种全文搜索服务系统,分离编解码算法保证密文和原始文档在基于语义树的搜索上的一致性。

4.3 语义树索引

语言的基本为文字,由文字构成不同的语句,语句是文章或者人际交流最基本的语言单位。如果一句话为树的一个分支,那么相同起点的文字的语句结合在一起构成一颗语义树,树上的节点分为根节点,分支节点,果子节点(语句最后的节点,一般对应一篇文章,如果文章为果子的话,该节点为果子节点)。这样所有的语言组成不同的语义树,整个语义树表示现代的语言的语句的集合。

语义树的索引技术,通过该技术找到最大匹配的语句,从而得到果子,已找到匹配的文章。该技术可以用于全文索引、密文全文索引和NLP语义理解等领域。

语言是信息的高度浓缩,给人以记忆、联想,人们利用语言交流,写作,从事科研,人的活动可以通过文字的形式来表达。文字的形成是一件伟大的事,文字、语句和文章的组成需要满足该语言的规则,文字的上下文联系现在看来既浑然天成又不可思议。

信息时代是伟大的时代,信息时代的记忆对比人来说,对比传统的文章而言,不可同日而语。

用信息时代的技术来描述和记载文字,形象的描述文字的上下文联系,就成了一件有意义的事,于是开始语义树的研究。

意义不仅于此,通过语义树可以描述语言上下文的同时,也为语言文字全文的检索提供了可行的支撑。

对文字的搜索提供一种独有的方式,按系统的算法对文字进行特定的编码,组建索引时存到关系表word中,为语句位的提供语句标识;存储语句和文档的关系到docseg表中;文档存储到text表中。

4.3.1语义树索引技术简介

语义树索引技术主要根据语句中文字的排列顺序,计算文字对应语句的特征编码,利用链式存储技术,实现对应语义树。形象的描述是:文字为语义树上的基本节点,语句为语义树的枝条,所有的枝条结合在一起构建语义树。语义树上的分枝具有同样的根节点文字。

语义树的索引技术指的是在语义树上查找语句,通过语句找到对应的文档的过程。一般来说语义树的索引包括:

1、语义树。利用语句中文字的特征码,结合该文字前面的特征码组建。主要技术为特征码和链式存储。

2、语句和文档的关系。主要存储语句特征码和文档关系。

通过最大匹配语句找到文档的过程,称为语义树的索引。

语义树索引技术主要采用的技术:

1、特征编码技术。主要由增量hash算法构建,假定语句含有文字序列为{w0,w1,...,wn},则特征码计算如下:

Ti=hashTi-1+wi-1,i=0时,T0=hash(w0)

2、链式存储技术。语义树的存储单元为:{TiwiTi-1,f},其中f表示是否为句尾。

3、语句和文档的关系。主要存储具有句尾标识的特征码和文档ID的关系。

4、语句匹配查询技术。分为两种方式:计算语句的特征码,在语义树中查找,去找到的最大深度的特征码,然后在语义树中匹配语句,根据语句找到文档。在语义树中找到第一个文字对应的记录集合,从集合中取出特征码,结合查询的语句,去掉第一个字符,和后续的文字计算特征码,在语义树中查找,去找到的最大深度的特征码,然后在语义树中匹配语句,根据语句找到文档。

4.3.2 语义树索引技术特点

语义树记载文章的上下文关系,特征码的计算和存储保障数据的最小化存储。语句中文字的特征码仅仅和该文字前的文字(包含该文字)以及文字排列的顺序相关。

语义树索引技术特点:

1、可视化的表示语言的组成;

2、真实的反应语言文字之间的关系;

3、有利于全文检索的精准查找;

4、语句的检索速度快,系统生成的索引体积小。

语义树索引采用增量hash技术的特点,和基于语句hash的不同之处在于:

1、增量hash保存的单元大小和格式固定。每个单元有:96整形数表示的特征码,文字单元,前96整形数表示的特征码,句尾标识组成。

2、语句hash保存单元可以同样设置。每个但愿你有:96整形数表示的特征码,语句片段,前96整形数表示的特征码,句尾标识组成。

3、增量hash存储领域中间文字的模糊匹配,存储工整。

4、增量hash后续查找便捷,直接用该特征码结合后续文字计算即可,计算的特征码再查询。

5、增量hash有利于语义树的构建。

6、结合算法实现密文的语义树搜索。

4.3.3 语义树索引的应用

用于全文搜索方面,对比的有关键词倒排序表的技术;用于语义理解方面对应于常见的分词算法。

语义树索引的应用主要分为:

1、基于语义树的全文搜索。

2、基于语义树的密文全文搜索。

3、语义分析。

4.4密文搜索

密文搜索主要的信息安全算法在前端完成。文章需要实现密文搜索,主要做两件事,第一完成信息的加密处理后,把加密信息输入到全文索引;第二查询条件加密后,送到服务端查询,查询的结果前端解密显示。

4.4.1 加解密算法

密文索引算法采用分离码算法实现。

密文全文搜索系统,主要包括:信息的加密,加密信息索引,信息解密,全文索引系统。主要利用密文和原文前缀一致性,通过查询前缀匹配实现密文的检索,保证密文的查询和原始语句的查询结果的一致。

索引加密算法的特征:语句前缀相同加密的结果具有相同的一致性,这样保证采用密文的检索和原来的语句检索是一致的。加密信息全文检索算法可以采用分离码算法,信息按标点符号分割,形成信息加密单元,通过分离码算法加密,结合标点符号构成全文加密索引的相关字段,进入全文索引。

文档内容可以采用其他的加密方式进行。

4.4.2 密文索引的建立

信息全文需要建立密文索引信息和信息密文,密文索引信息建立过程如下:

首先对原文进行断句,然后对每一句进行分离码算法加密,组合所有加密语句,句之间增加标点符号或者自定义的语句分隔符,组成的信息为密文索引信息,信息的密文直接采用分离码加密即可。

支持多重分离码算法加密。

4.4.3密文搜索

密文搜索主要的信息安全算法在前端完成。文章需要实现密文搜索,主要做两件事,第一完成信息的加密处理后,把加密信息输入到全文索引;第二查询条件加密后,送到服务端查询,查询的结果前端解密显示。

5. 应用价值

多语种和密文全文搜索可以建立统一的语义树,为人工智能、语义理解提供技术支持;方便的为文字建立索引;对所有的语言提供统一的索引方案。

为语义理解提供语义树的支持,提供快速匹配语句,结合语义理解给出该句的语义解析。

不再需要分词,不再需要分开进行不同的处理,对于多语种结合的文字可以采用统一的来进行全文索引和检索。

服务于互联网,服务于不同的语种人群。

语义树的建立为人工智能提供来语义分析的平台。

语义树可以形象的展示搜索语句或者关键词的后续信息,适合进行分析。

多语种和密文全文搜索提供了统一的搜索方法,统一的标准,基于语义树存储文档关系表,在存储和检索方面具有性能上的优势,减少服务器和设备的开销。

6. API接口定义

系统接口基于web服务,接口均采用http服务的方式提供。

a) 内核列表接口。

模式:get

接口:core_list.action

访问形式:

例如:http://www.01wa.net/core_list.action

返回结果:

{"num":5,"res":[{"name":"aq","db":"tq","style":"mongodb","engn":""},{"name":"cx","db":"cx","style":"mysql","engn":"InnoDB"},{"name":"m1","db":"QA","style":"mysql","engn":"InnoDB"},{"name":"m8","db":"arvin","style":"mysql","engn":"InnoDB"},{"name":"m_1","db":"test","style":"mysql","engn":"InnoDB"}]}

b) 内核管理

模式:post

接口:core.action

参数:

optreadadddelwrite

value:加入内核的内容

访问形式:

增加内核

Request

{"opt":"add","value":{"name":"test","db":"test","style":"mongodb","engn":""}}:

Response

{"num":5,"res":[{"name":"aq","db":"zy6q","style":"mongodb","engn":""},{"name":"keyword","db":"keyword","style":"mongodb","engn":""},{"name":"miwen","db":"miwen","style":"mongodb","engn":""},{"name":"sybigdata","db":"sy","style":"mongodb","engn":""},{"name":"test","db":"test","style":"mongodb","engn":""}]}

编辑内核技术参数:

style3,设置空格分词的语种,

{"opt":"write","core":"aq","style":3,"value":"{\"split_word_by_blank\":[{\"min\":\"0020\",\"max\":\"007F\"},{\"min\":\"00A0\",\"max\":\"00FF\"},{\"min\":\"0100\",\"max\":\"017F\"},{\"min\":\"0370\",\"max\":\"03FF\"},{\"min\":\"0400\",\"max\":\"04FF\"},{\"min\":\"0500\",\"max\":\"052F\"},{\"min\":\"0530\",\"max\":\"058F\"},{\"min\":\"0590\",\"max\":\"05FF\"},{\"min\":\"0600\",\"max\":\"06FF\"},{\"min\":\"0700\",\"max\":\"074F\"},{\"min\":\"0750\",\"max\":\"077F\"},{\"min\":\"0780\",\"max\":\"07BF\"},{\"min\":\"0900\",\"max\":\"097F\"},{\"min\":\"0980\",\"max\":\"09FF\"},{\"min\":\"0A00\",\"max\":\"0A7F\"},{\"min\":\"0A80\",\"max\":\"0AFF\"},{\"min\":\"0B00\",\"max\":\"0B7F\"},{\"min\":\"0B80\",\"max\":\"0BFF\"},{\"min\":\"0C00\",\"max\":\"0C7F\"},{\"min\":\"0C80\",\"max\":\"0CFF\"},{\"min\":\"0D00\",\"max\":\"0D7F\"},{\"min\":\"0D80\",\"max\":\"0DFF\"},{\"min\":\"0F00\",\"max\":\"0FFF\"},{\"min\":\"10A0\",\"max\":\"10FF\"},{\"min\":\"1200\",\"max\":\"137F\"},{\"min\":\"1380\",\"max\":\"139F\"},{\"min\":\"13A0\",\"max\":\"13FF\"},{\"min\":\"1400\",\"max\":\"167F\"},{\"min\":\"1680\",\"max\":\"169F\"},{\"min\":\"16A0\",\"max\":\"16FF\"},{\"min\":\"1700\",\"max\":\"171F\"},{\"min\":\"1720\",\"max\":\"173F\"},{\"min\":\"1740\",\"max\":\"175F\"},{\"min\":\"1760\",\"max\":\"177F\"},{\"min\":\"1800\",\"max\":\"18AF\"},{\"min\":\"1900\",\"max\":\"194F\"},{\"min\":\"1950\",\"max\":\"197F\"},{\"min\":\"1980\",\"max\":\"19DF\"},{\"min\":\"1A00\",\"max\":\"1A1F\"},{\"min\":\"1B00\",\"max\":\"1B7F\"},{\"min\":\"1F00\",\"max\":\"1FFF\"},{\"min\":\"2C00\",\"max\":\"2C5F\"},{\"min\":\"2C80\",\"max\":\"2CFF\"},{\"min\":\"2D00\",\"max\":\"2D2F\"},{\"min\":\"2D30\",\"max\":\"2D7F\"},{\"min\":\"2D80\",\"max\":\"2DDF\"},{\"min\":\"A000\",\"max\":\"A48F\"},{\"min\":\"A490\",\"max\":\"A4CF\"},{\"min\":\"A700\",\"max\":\"A71F\"},{\"min\":\"A720\",\"max\":\"A7FF\"},{\"min\":\"A840\",\"max\":\"A87F\"},{\"min\":\"AC00\",\"max\":\"D7AF\"},{\"min\":\"FF00\",\"max\":\"FFEF\"},{\"min\":\"10300\",\"max\":\"103\"},{\"min\":\"10330\",\"max\":\"103\"},{\"min\":\"10380\",\"max\":\"103\"},{\"min\":\"103A0\",\"max\":\"103\"},{\"min\":\"10400\",\"max\":\"104\"},{\"min\":\"10450\",\"max\":\"104\"},{\"min\":\"10800\",\"max\":\"108\"},{\"min\":\"10900\",\"max\":\"109\"},{\"min\":\"10A00\",\"max\":\"10A\"},{\"min\":\"12000\",\"max\":\"123\"},{\"min\":\"12400\",\"max\":\"124\"},{\"min\":\"1D000\",\"max\":\"1D0\"},{\"min\":\"1D100\",\"max\":\"1D1\"},{\"min\":\"1D200\",\"max\":\"1D2\"}]}"}:

Response:为true表示成功;

{"result":true}

 设置索引的语种,参数:

style1

valueword表示特定的文字;multi_word表示utf8区块

 {"opt":"write","core":"aq","style":1,"value":"{\"word\":\"[]\",\"multi_word\":[]}"}:

{"result":true}

 断句设置,参数:

style2

valuesen表示特定的文字;multi_sen表示utf8区块;noinc排除字符

{"opt":"write","core":"aq","style":2,"value":"{\"sen\":[],\"noinc\":[],\"multi_sen\":[{\"min\":\"2000\",\"max\":\"206F\"},{\"min\":\"3000\",\"max\":\"303F\"},{\"min\":\"0020\",\"max\":\"002F\"},{\"min\":\"003A\",\"max\":\"0040\"},{\"min\":\"005B\",\"max\":\"0060\"},{\"min\":\"007B\",\"max\":\"007E\"},{\"min\":\"00A0\",\"max\":\"00BF\"}]}"}:

{"result":true}

初始化,主要初始化文档索引和存储的字段

参数:

style0save表示存储的字段;index表示索引的字段

{"opt":"write","core":"aq","style":0,"value":"{\"save\":[\"_id\",\"title\",\"title_s\",\"content\",\"answer\"],\"index\":[\"title\",\"title_s\",\"answer\"]}","create_table_str":""}:

{"result":true}

{"opt":"read","core":"aq","style":0}:

{"result":true,"core":"aq","idx_str":"{\"save\":[\"_id\",\"title\",\"title_s\",\"content\",\"answer\"],\"index\":[\"title\",\"title_s\",\"answer\"]}","create_table_str":""}

{"opt":"read","core":"aq","style":3}:

{"result":true,"core":"aq","split_word_by_blank":"{\"split_word_by_blank\":[{\"min\":\"0020\",\"max\":\"007F\"},{\"min\":\"00A0\",\"max\":\"00FF\"},{\"min\":\"0100\",\"max\":\"017F\"},{\"min\":\"0370\",\"max\":\"03FF\"},{\"min\":\"0400\",\"max\":\"04FF\"},{\"min\":\"0500\",\"max\":\"052F\"},{\"min\":\"0530\",\"max\":\"058F\"},{\"min\":\"0590\",\"max\":\"05FF\"},{\"min\":\"0600\",\"max\":\"06FF\"},{\"min\":\"0700\",\"max\":\"074F\"},{\"min\":\"0750\",\"max\":\"077F\"},{\"min\":\"0780\",\"max\":\"07BF\"},{\"min\":\"0900\",\"max\":\"097F\"},{\"min\":\"0980\",\"max\":\"09FF\"},{\"min\":\"0A00\",\"max\":\"0A7F\"},{\"min\":\"0A80\",\"max\":\"0AFF\"},{\"min\":\"0B00\",\"max\":\"0B7F\"},{\"min\":\"0B80\",\"max\":\"0BFF\"},{\"min\":\"0C00\",\"max\":\"0C7F\"},{\"min\":\"0C80\",\"max\":\"0CFF\"},{\"min\":\"0D00\",\"max\":\"0D7F\"},{\"min\":\"0D80\",\"max\":\"0DFF\"},{\"min\":\"0F00\",\"max\":\"0FFF\"},{\"min\":\"10A0\",\"max\":\"10FF\"},{\"min\":\"1200\",\"max\":\"137F\"},{\"min\":\"1380\",\"max\":\"139F\"},{\"min\":\"13A0\",\"max\":\"13FF\"},{\"min\":\"1400\",\"max\":\"167F\"},{\"min\":\"1680\",\"max\":\"169F\"},{\"min\":\"16A0\",\"max\":\"16FF\"},{\"min\":\"1700\",\"max\":\"171F\"},{\"min\":\"1720\",\"max\":\"173F\"},{\"min\":\"1740\",\"max\":\"175F\"},{\"min\":\"1760\",\"max\":\"177F\"},{\"min\":\"1800\",\"max\":\"18AF\"},{\"min\":\"1900\",\"max\":\"194F\"},{\"min\":\"1950\",\"max\":\"197F\"},{\"min\":\"1980\",\"max\":\"19DF\"},{\"min\":\"1A00\",\"max\":\"1A1F\"},{\"min\":\"1B00\",\"max\":\"1B7F\"},{\"min\":\"1F00\",\"max\":\"1FFF\"},{\"min\":\"2C00\",\"max\":\"2C5F\"},{\"min\":\"2C80\",\"max\":\"2CFF\"},{\"min\":\"2D00\",\"max\":\"2D2F\"},{\"min\":\"2D30\",\"max\":\"2D7F\"},{\"min\":\"2D80\",\"max\":\"2DDF\"},{\"min\":\"A000\",\"max\":\"A48F\"},{\"min\":\"A490\",\"max\":\"A4CF\"},{\"min\":\"A700\",\"max\":\"A71F\"},{\"min\":\"A720\",\"max\":\"A7FF\"},{\"min\":\"A840\",\"max\":\"A87F\"},{\"min\":\"AC00\",\"max\":\"D7AF\"},{\"min\":\"FF00\",\"max\":\"FFEF\"},{\"min\":\"10300\",\"max\":\"103\"},{\"min\":\"10330\",\"max\":\"103\"},{\"min\":\"10380\",\"max\":\"103\"},{\"min\":\"103A0\",\"max\":\"103\"},{\"min\":\"10400\",\"max\":\"104\"},{\"min\":\"10450\",\"max\":\"104\"},{\"min\":\"10800\",\"max\":\"108\"},{\"min\":\"10900\",\"max\":\"109\"},{\"min\":\"10A00\",\"max\":\"10A\"},{\"min\":\"12000\",\"max\":\"123\"},{\"min\":\"12400\",\"max\":\"124\"},{\"min\":\"1D000\",\"max\":\"1D0\"},{\"min\":\"1D100\",\"max\":\"1D1\"},{\"min\":\"1D200\",\"max\":\"1D2\"}]}"}

 

删除内核,参数:

opt:del

valuename,删除内核的名称

{"opt":"del","value":{"name":"test"}}:

{"num":4,"res":[{"name":"aq","db":"zy6q","style":"mongodb","engn":""},{"name":"keyword","db":"keyword","style":"mongodb","engn":""},{"name":"miwen","db":"miwen","style":"mongodb","engn":""},{"name":"sybigdata","db":"sy","style":"mongodb","engn":""}]}

c) 查询接口。

模式:post

接口:search.action

参数:json格式

 core:查询内核名称

 query:查询内容

skip: skip开始查询

limit: 返回记录数

byid: 0标识根据文字内容查询;为1表示按编码的id查询

 {core:”core”,query:”query”,skip:”0”,limit:”10”,byid: 1, flag: 0 }

d) 联想查询接口

模式:post

接口:find_children.action

参数:json格式

 core:查询内核名称

 query:查询内容

style: 1根据文字查;0根据id

w:

{"core":"aq","query":"李白","style":1,"w":""}:

{"w":"","core":"aq","query":"李白","style":1,"children":[{ "w":"李白","QTime":1.269,"children": [{"w":"李白","_id":"cc0f3b41c58e008632a3e265","a":1,"children":[{ "a" : true, "_id" : "915633ff93ae8fbbc4d840ab", "w" : "" },{ "_id" : "28924c82aa1f889040d841c2", "w" : "" }]}] }]}

{"core":"aq","query":"7adb09ef0c422ac21ad84399","style":0,"w":""}:

{"w":"","core":"aq","query":"7adb09ef0c422ac21ad84399","style":0,"children":[]}

e) NLP查询接口

模式:post

接口:aisearch.action

参数:json格式

 core:查询内核名称

 query:查询内容

{"core":"aq","query":"李白"}:

 {"result":[{ "w":"李白","QTime":0.024,"children": [{"w":"李白","_id":"cc0f3b41c58e008632a3e265","a":1,"v":[1]},{"w":"<br/>","_id":"0","a":1}]}],"core":"aq","tm":0.024}

f) 文章导入接口

模式:post

接口:/core/update/json

参数:json数组,数组内为提交的文档json

[{"_id":"","title":"多语种和密文全文搜索提供多语种和密文全文搜索服务","title_s":"多语种和密文全文搜索由上海泥娃通信科技有限公司开发,由苏州泥娃软件科技有限公司提供技术支持","content":"","answer":"产品特点:\n1、多语种支持。采用语义树索引技术,支持不同语言文字的全文检索服务,具有占用少,搜索效率高的特点,搜索精准度高,具有上下文的联想提示功能。\n2、密文搜索支持。支持加密文档的加密搜索服务。\n3、智能语义理解。"}]:

{"time":14.148,"result":"suc"}

 7. 典型应用

多语种和密文全文搜索除了用于全文检索,还提供联想语义查询和语义树的查询功能。

典型应用场景:

1、企业级市场技术服务,服务的商家包括:办公软件、和办公系统厂商,office办公和OA系统,ERP系统,电子文件系统,档案系统厂商提供全文搜索加密文全文搜索服务。

2、互联网技术服务,提供网站、电商平台等互联网平台的内容搜索服务,包括搜索引擎提供商,云计算厂商等,提供多语种和密文全文搜索服务。

3、人工智能市场技术服务,提供智能语义理解解析服务。

4、软件市场,主要提供多语种和密文全文搜索产品,作为独立的软件提供服务。

5、情报收集、专业文献和论文的检索服务。

7.1文字信息的检索

作为独立的全文搜索引擎使用,满足文字信息的索引和检索工作。互联网的信息搜索,企业级的全文检索服务。

适合不同的文字的全文检索,可以作为特定语言的网页信息检索的工具。

7.2 联想语义

提供语义的上下文关联检索,甚至于提供语句的上下文检索。

7.3 密文搜索

提供密文索引的建立,密文全文搜索服务,广泛用于机关、学校和企事业单位,个人对于信息安全下文章全文检索服务的要求。

7.4 语义树应用

基于语义树的信息分析和展示,基于语义树的搜索结果的存储和交流。可以直观的呈现搜索的结果和之间的关系,可以提供基于语义树的信息分享。搜索的结果通过搜索的语义树进行分享。

基于语义树的机器自动学习和智能语义理解,智能情报分析服务。

通过语义树的比较分析关注点,例如不同地区的不同事物,或者不同语言的同样意思的语句,生成语义树的比较。


作者:1、张留学 上海泥娃通信科技有限公司 2张焕中 苏州泥娃软件科技有限公司

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页