CN103488702A - 基于SorlCloud非结构化数据检索方法和系统 - Google Patents
基于SorlCloud非结构化数据检索方法和系统 Download PDFInfo
- Publication number
- CN103488702A CN103488702A CN201310400164.9A CN201310400164A CN103488702A CN 103488702 A CN103488702 A CN 103488702A CN 201310400164 A CN201310400164 A CN 201310400164A CN 103488702 A CN103488702 A CN 103488702A
- Authority
- CN
- China
- Prior art keywords
- solr
- sorlcloud
- request
- unstructured data
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及信息技术处理领域,具体涉及一种基于SorlCloud非结构化数据检索方法和系统;包括:用户通过向部署在servlet容器中的Solr Web的应用程序发送HTTP请求来启动索引和搜索;Apache Solr接收用户发送的检索请求,确定要使用的适当的SolrRequestHandler,然后处理请求;Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回给用户;本发明有益效果在于:其实时性好、占用资源少,本发明检索耗费时间从原来的10秒以上缩短至亚秒级。
Description
技术领域
本发明涉及信息技术处理领域,具体涉及一种基于SorlCloud非结构化数据检索方法和系统。
背景技术
传统的搜索引擎是基于关键字和关系型数据库的,即需要在数据库中包含关键字字段,通过模糊查询对包含查询条件的关键字字段进行检索,找到符合条件的记录,进一步获取详细信息。而非结构化数据的搜索则有着很大的不同,非结构化的数据不是按照关系型数据库的结构排列好的,而是一些文档、图像、音频、视频等,在对文档内容、图像中的文字、音频中的说话内容、视频中的字幕等的搜索存在比较大得需求。因此针对非结构化数据的搜索制定一套完整的解决方案是一个非常重要的研究课题。
SolrCloud是当前较为流行的开源分布式搜索引擎解决方案,其基于ZooKeeper和Solr进行搭建,支持分布式索引的全文检索机制,自动容错,通过配置即可完成分布式环境的部署,具有良好的可扩展性,是非结构化数据搜索的最好选择。
发明内容
本发明的目的为了解决上述问题,提供了一种基于SorlCloud非结构数据检索方法,其实时性好、占用资源少。
为实现上述目的,基于SorlCloud非结构化数据检索方法,包括:
用户通过向部署在servlet容器中的Solr Web的应用程序发送HTTP请求来启动索引和搜索;
Apache Solr接收用户发送的检索请求,确定要使用的适当的SolrRequestHandler,然后处理请求;
Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回给用户。
具体的,所述用户向Apache Solr索引servlet传递索引请求包括:
add/update允许向Apache Solr添加文档或更新文档;
commit告诉Apache Solr,上次提交的请求所做的所有更改都可以被搜索到;
optimize重构Lucene的文件以改进搜索性能;
delete可以通过id或查询来指定。
进一步的,所述用户发送的检索请求携带用户所要目标的检索条件。
进一步的,所述根据用户发送的检索请求,Lucene先在内存中进行索引操作,并根据一定的批量进行文件的写入,IndexWriter中的MERGE_FACTOR参数可以在构造索引器后根据应用环境的情况充分利用内存减少文件的操作。
进一步的:根据所述的Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回具体为将所有结果中匹配度最高的头100条结果的ID放到结果集缓存中并返回。
再者,若首批缓存结果数用完后还要读取更后面的结果时Searcher会再次检索并生成一个上次的搜索缓存数大1倍的缓存,并再重新向后抓取。
具体的,所述Apache Solr接收用户发送的检索请求为用POST方法向Solr服务器发送一个描述所有Field及其内容的XML文档。
进一步的,Apache Solr调用搜索接口时只需要发送HTTP GET请求即可,然后对Solr返回的信息进行重新布局,以产生利于用户理解的页面内容布局。
本发明中基于SorlCloud非结构化数据检索系统,包括4个Solr节点的集群,索引库分布在两个Shard里面,每个Shard包含两个Solr节点,一个是主节点,一个是备份节点,主节点负责维护集群状态信息的Overseer节点,它是一个总控制器。
进一步的,所述的4个Solr节点中的任何节点都可以接收索引更新的请求,然后再将这个请求转发到文档所应该属于的那个Shard的主节点,主节点更新结束完成,最后将版本号和文档转发给同属于一个Shard的备份节点。
本发明具有以下有益效果:非结构化数据管理平台的搜索解决方案集成了优秀的分布式搜索引擎SorlCloud,基于ZooKeeper和Solr进行搭建,支持分布式索引的全文检索机制,自动容错,通过配置即可完成分布式环境的部署,具有良好的可扩展性。加上OCR、ICR和其他一些智能识别技术的支撑,并根据非结构化数据特点进行针对性优化和功能扩展,从而形成一个强有力的分布式智能搜索引擎,对于非结构化数据管理来说是一个质的飞跃。本发明检索耗费时间从原来的10秒以上缩短至亚秒级,从而达到高效的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明提供基于SorlCloud非结构化数据检索方法,包括:
S101,用户通过向部署在servlet容器中的Solr Web的应用程序发送HTTP请求来启动索引和搜索;Lucene全文索引引擎,将数据源中的数据都通过全文索引一一建立反向索引,然后通过词元(term)进行匹配,通过语言分析接口的实现,可以实现对中文等非英语的支持,其中采用有匹配度算法,将匹配程度(相似度)比较高的结果排在前面。
S102,Apache Solr接收用户发送的检索请求,确定要使用的适当的SolrRequestHandler,然后处理请求;
S103,Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回给用户;默认配置返回Solr的标准XML响应,也可以配置Solr的备用响应格式。Lucene通过特别的算法,将最匹配度最高的头100条结果输出,结果集是缓冲式的小批量读取的,通过不同的语言分析接口实现,可以方便的定制出符合应用需要的索引规则(包括对中文的支持)。
作为本发明具体的实施例,所述用户向Apache Solr索引servlet传递索引请求包括:add/update允许向Apache Solr添加文档或更新文档;直到提交后才能搜索到这些添加和更新。commit告诉Apache Solr,上次提交的请求所做的所有更改都可以被搜索到。optimize重构Lucene的文件以改进搜索性能;索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程。delete可以通过id或查询来指定;按id删除将删除具有指定id的文档;按查询删除将删除查询返回的所有文档。进一步的,所述用户发送的检索请求携带用户所要目标的检索条件。
所述根据用户发送的检索请求,Lucene先在内存中进行索引操作,并根据一定的批量进行文件的写入,这个批次的间隔越大,文件的写入次数越少,但占用内存会很多。反之占用内存少,但文件IO操作频繁,索引速度会很慢。在IndexWriter中的MERGE_FACTOR参数可以在构造索引器后根据应用环境的情况充分利用内存减少文件的操作,缺省Indexer是每20条记录索引后写入一次,每将MERGE_FACTOR增加50倍,索引速度可以提高1倍左右。
Lucene面向全文检索的优化在于首次索引检索后,并不把所有的记录(Document)具体内容读取出来,根据所述的Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回具体为将所有结果中匹配度最高的头100条结果的ID放到结果集缓存中并返回,这里可以比较一下数据库检索:如果是一个10,000条的数据库检索结果集,数据库是一定要把所有记录内容都取得以后再开始返回给应用结果集的。所以即使检索匹配总数很多,Lucene的结果集占用的内存空间也不会很多。对于一般的模糊检索应用是用不到这么多的结果的,头100条已经可以满足90%以上的检索需求,。
再者,若首批缓存结果数用完后还要读取更后面的结果时Searcher会再次检索并生成一个上次的搜索缓存数大1倍的缓存,并再重新向后抓取。如果构造一个Searcher去查1-120条结果,Searcher其实是进行了2次搜索过程:头100条取完后,缓存结果用完,Searcher重新检索再构造一个200条的结果缓存,依此类推,400条缓存,800条缓存。由于每次Searcher对象消失后,这些缓存也访问那不到了,你有可能想将结果记录缓存下来,缓存数尽量保证在100以下以充分利用首次的结果缓存,不让Lucene浪费多次检索,而且可以分级进行结果缓存。
再者,Apache Solr是一个开源的搜索服务器,Solr使用Java语言开发,主要基于HTTP和Apache Lucene实现。所述Apache Solr接收用户发送的检索请求为用POST方法向Solr服务器发送一个描述所有Field及其内容的XML文档。Apache Solr调用搜索接口时只需要发送HTTP GET请求即可,然后对Solr返回的信息进行重新布局,以产生利于用户理解的页面内容布局。
本发明中基于SorlCloud非结构化数据检索系统,SolrCloud是基于ZooKeeper和Solr的分布式解决方案,为Solr添加分布式功能,用于建立高可用,高伸缩,自动容错,分布式索引,分布式查询的Solr服务器集群;SolrCloud并非一个新的软件发布包,而是Solr4.0版本新增组件用于跟ZooKeeper配合提供分布式功能,部署时只是修改启动配置。SorlCloud包括4个Solr节点的集群,索引库分布在两个Shard里面,每个Shard包含两个Solr节点,一个是主节点,一个是备份节点,主节点负责维护集群状态信息的Overseer节点,它是一个总控制器。集群的所有状态信息都放在Zookeeper集群中统一维护。
进一步的,所述的4个Solr节点中的任何节点都可以接收索引更新的请求,然后再将这个请求转发到文档所应该属于的那个Shard的主节点,主节点更新结束完成,最后将版本号和文档转发给同属于一个Shard的备份节点
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于SorlCloud非结构化数据检索方法,其特征在于:包括:
用户通过向部署在servlet容器中的Solr Web的应用程序发送HTTP请求来启动索引和搜索;
Apache Solr接收用户发送的检索请求,确定要使用的适当的SolrRequestHandler,然后处理请求;
Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回给用户。
2.根据权利要求1所述的基于SorlCloud非结构化数据检索方法,其特征在于:所述用户向Apache Solr索引servlet传递索引请求包括:
add/update允许向Apache Solr添加文档或更新文档;
commit告诉Apache Solr,上次提交的请求所做的所有更改都可以被搜索到;
optimize重构Lucene的文件以改进搜索性能;
delete可以通过id或查询来指定。
3.根据权利要求1述的基于SorlCloud非结构化数据检索方法,其特征在于:所述用户发送的检索请求携带用户所要目标的检索条件。
4.根据权利要求1所述的基于SorlCloud非结构化数据检索方法,其特征在于:所述根据用户发送的检索请求,Lucene先在内存中进行索引操作,并根据一定的批量进行文件的写入,IndexWriter中的MERGE_FACTOR参数可以在构造索引器后根据应用环境的情况充分利用内存减少文件的操作。
5.根据权利要求1所述的基于SorlCloud非结构化数据检索方法,其特征在于:根据所述的Apache Solr调用搜索接口通过发送HTTP将符合检索条件的对象返回具体为将所有结果中匹配度最高的头100条结果的ID放到结果集缓存中并返回。
6.根据权利要求5所述的基于SorlCloud非结构化数据检索方法,其特征在于:若首批缓存结果数用完后还要读取更后面的结果时Searcher会再次检索并生成一个上次的搜索缓存数大1倍的缓存,并再重新向后抓取。
7.根据权利要求1所述的基于SorlCloud非结构化数据检索方法,其特征在于:所述Apache Solr接收用户发送的检索请求为用POST方法向Solr服务器发送一个描述所有Field及其内容的XML文档。
8.根据权利要求1所述的基于SorlCloud非结构化数据检索方法,其特征在于:Apache Solr调用搜索接口时只需要发送HTTP GET请求即可,然后对Solr返回的信息进行重新布局,以产生利于用户理解的页面内容布局。
9.基于SorlCloud非结构化数据检索系统,其特征在于:包括4个Solr节点的集群,索引库分布在两个Shard里面,每个Shard包含两个Solr节点,一个是主节点,一个是备份节点,主节点负责维护集群状态信息的Overseer节点,它是一个总控制器。
10.根据权利要求9所述的基于SorlCloud非结构化数据检索系统,其特征在于:所述的4个Solr节点中的任何节点都可以接收索引更新的请求,然后再将这个请求转发到文档所应该属于的那个Shard的主节点,主节点更新结束完成,最后将版本号和文档转发给同属于一个Shard的备份节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310400164.9A CN103488702A (zh) | 2013-09-06 | 2013-09-06 | 基于SorlCloud非结构化数据检索方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310400164.9A CN103488702A (zh) | 2013-09-06 | 2013-09-06 | 基于SorlCloud非结构化数据检索方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103488702A true CN103488702A (zh) | 2014-01-01 |
Family
ID=49828928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310400164.9A Pending CN103488702A (zh) | 2013-09-06 | 2013-09-06 | 基于SorlCloud非结构化数据检索方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488702A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391941A (zh) * | 2014-11-25 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种快速构建常用文件全文检索工具的方法 |
CN104778278A (zh) * | 2015-04-30 | 2015-07-15 | 亚信科技(南京)有限公司 | 一种基于solr的搜索方法及搜索应用服务器AUS |
CN106648897A (zh) * | 2016-12-28 | 2017-05-10 | 厦门市美亚柏科信息股份有限公司 | 一种支持均衡资源的solr集群扩展方法及系统 |
CN106933998A (zh) * | 2017-03-01 | 2017-07-07 | 湖南蚁坊软件股份有限公司 | 一种解决ApacheSolr短语搜索不准的方法 |
CN107239517A (zh) * | 2017-05-23 | 2017-10-10 | 中国联合网络通信集团有限公司 | 基于Hbase数据库的多条件搜索方法及装置 |
WO2017177800A1 (zh) * | 2016-04-15 | 2017-10-19 | 中兴通讯股份有限公司 | Solr集群自动扩容方法及系统、计算机存储介质 |
CN107703840A (zh) * | 2017-11-24 | 2018-02-16 | 合肥立腾信息科技有限责任公司 | 一种基于大数据技术的智能监控系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129469A (zh) * | 2011-03-23 | 2011-07-20 | 华中科技大学 | 一种面向虚拟实验的非结构化数据访问方法 |
US20130086036A1 (en) * | 2011-09-01 | 2013-04-04 | John Rizzo | Dynamic Search Service |
-
2013
- 2013-09-06 CN CN201310400164.9A patent/CN103488702A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129469A (zh) * | 2011-03-23 | 2011-07-20 | 华中科技大学 | 一种面向虚拟实验的非结构化数据访问方法 |
US20130086036A1 (en) * | 2011-09-01 | 2013-04-04 | John Rizzo | Dynamic Search Service |
Non-Patent Citations (5)
Title |
---|
佚名: "Lucene和Solr 学习目录", 《HTTP://BLOG.CSDN.NET/LIUWEITOO/ARTICLE/DETAILS/8124440》 * |
佚名: "lucene搜索引擎技术的分析与整理", 《HTTP://WWW.CNBLOGS.COM/KWKLOVER/ARTICLES/839702.HTML》 * |
佚名: "深入剖析SolrCloud(一)", 《HTTP://WWW.CNBLOGS.COM/PHINECOS/ARCHIVE/2012/02/10/2345634.HTML》 * |
张新生: "基于solr的分布式搜索引擎研究", <中国优秀硕士论文全文数据库 信息科技辑> * |
李戴维: "基于 Solr 的分布式全文检索系统的研究与实现", 《计算机与现代化》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391941A (zh) * | 2014-11-25 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种快速构建常用文件全文检索工具的方法 |
CN104778278A (zh) * | 2015-04-30 | 2015-07-15 | 亚信科技(南京)有限公司 | 一种基于solr的搜索方法及搜索应用服务器AUS |
WO2017177800A1 (zh) * | 2016-04-15 | 2017-10-19 | 中兴通讯股份有限公司 | Solr集群自动扩容方法及系统、计算机存储介质 |
CN106648897A (zh) * | 2016-12-28 | 2017-05-10 | 厦门市美亚柏科信息股份有限公司 | 一种支持均衡资源的solr集群扩展方法及系统 |
CN106648897B (zh) * | 2016-12-28 | 2019-11-22 | 厦门市美亚柏科信息股份有限公司 | 一种支持均衡资源的solr集群扩展方法及系统 |
CN106933998A (zh) * | 2017-03-01 | 2017-07-07 | 湖南蚁坊软件股份有限公司 | 一种解决ApacheSolr短语搜索不准的方法 |
CN106933998B (zh) * | 2017-03-01 | 2021-03-02 | 湖南蚁坊软件股份有限公司 | 一种解决ApacheSolr短语搜索不准的方法 |
CN107239517A (zh) * | 2017-05-23 | 2017-10-10 | 中国联合网络通信集团有限公司 | 基于Hbase数据库的多条件搜索方法及装置 |
CN107239517B (zh) * | 2017-05-23 | 2020-09-29 | 中国联合网络通信集团有限公司 | 基于Hbase数据库的多条件搜索方法及装置 |
CN107703840A (zh) * | 2017-11-24 | 2018-02-16 | 合肥立腾信息科技有限责任公司 | 一种基于大数据技术的智能监控系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488702A (zh) | 基于SorlCloud非结构化数据检索方法和系统 | |
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
EP2181399B1 (en) | Composite nested streams | |
US9836541B2 (en) | System and method of managing capacity of search index partitions | |
US20220156292A1 (en) | Systems and methods for generating and using aggregated search indices and non-aggregated value storage | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US20140059185A1 (en) | Processing Data Feeds | |
US9753977B2 (en) | Method and system for managing database | |
CN104778270A (zh) | 一种用于多文件的存储方法 | |
CN103678494A (zh) | 客户端同步服务端数据的方法及装置 | |
CN104679898A (zh) | 一种大数据访问方法 | |
US11449564B2 (en) | System and method for searching based on text blocks and associated search operators | |
CN106294695A (zh) | 一种面向实时大数据搜索引擎的实现方法 | |
CN111881223B (zh) | 数据管理方法、设备、系统及存储介质 | |
CN107329987A (zh) | 一种基于mongo数据库的搜索系统 | |
CN102955792A (zh) | 一种实时全文搜索引擎事务处理的实现方法 | |
CN104090901A (zh) | 一种对数据进行处理的方法、装置及服务器 | |
CN110716952A (zh) | 一种多源异构数据处理方法、装置和存储介质 | |
CN111090668B (zh) | 数据检索方法及装置、电子设备和计算机可读存储介质 | |
CN116089414B (zh) | 基于海量数据场景的时序数据库写入性能优化方法及装置 | |
CN111930684A (zh) | 基于hdfs的小文件处理方法、装置、设备及存储介质 | |
CN116956825A (zh) | 表单转换方法及服务器 | |
CN113779068B (zh) | 数据查询方法、装置、设备及存储介质 | |
WO2012068561A2 (en) | Processing data feeds | |
CN117555949A (zh) | 基于Elastic Search的关系型数据库的数据管理方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140101 |