CN104731945A - 一种基于HBase的全文检索方法及装置 - Google Patents

一种基于HBase的全文检索方法及装置 Download PDF

Info

Publication number
CN104731945A
CN104731945A CN201510149269.0A CN201510149269A CN104731945A CN 104731945 A CN104731945 A CN 104731945A CN 201510149269 A CN201510149269 A CN 201510149269A CN 104731945 A CN104731945 A CN 104731945A
Authority
CN
China
Prior art keywords
solr
engine
result
retrieval
hbase
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.)
Granted
Application number
CN201510149269.0A
Other languages
English (en)
Other versions
CN104731945B (zh
Inventor
贾德星
徐正礼
魏金雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201510149269.0A priority Critical patent/CN104731945B/zh
Publication of CN104731945A publication Critical patent/CN104731945A/zh
Application granted granted Critical
Publication of CN104731945B publication Critical patent/CN104731945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于HBase的全文检索方法及装置,方法包括:将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;服务器端接收客户端发送的查询请求,所述查询请求携带查询条件;服务器端调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索;Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。根据本方案,提高了查询效率。

Description

一种基于HBase的全文检索方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种基于HBase的全文检索方法及装置。
背景技术
HBase是一个分布式、面向列的开源数据库,可实现上百亿的结构化/非结构化数据的存储能力。HBase表中可以定义列族和列值,并按照列族组织存储文件,数据表的底层存储是一种KeyValue格式,并对Rowkey(行关键字)按照字典进行排序并建立。
目前,可以实现对HBase中所存储数据的索引,该索引可以利用Rowkey的条件查询实现HBase中所存储数据的查询,该Rowkey条件查询可以利用Filter实现条件查询。
但Filter条件查询的性能较差,有些查询需求可能需要对HBase表进行全局扫描,而对于一个上百亿的数据表来说Filter条件查询的效率较低。
发明内容
有鉴于此,本发明提供一种基于HBase的全文检索方法及装置,以解决现有技术中查询效率较低的问题。
本发明提供了一种基于HBase的全文检索方法,将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;还包括:
服务器端接收客户端发送的查询请求,所述查询请求携带查询条件;
服务器端调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索;
Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。
优选地,
进一步包括:扩展Solr Coprocessor对象和HSearchTable对象,预先定义Solr索引配置和HBase索引配置,所述Solr索引配置用于限定存储至Solr引擎中的索引内容,所述HBase索引配置用于指示索引内容存储在Solr引擎的位置;
所述将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中,包括:服务器端接收客户端利用HSearchTable对象发送的Put对象,所述Put对象包括待索引的KeyValue集合;服务器端调用Solr Coprocessor对象,Solr Coprocessor对象根据所述Solr索引配置所限定的索引内容,遍历所述Put对象所包括待索引的KeyValue集合,为KeyValue集合中每一个KeyValue值构建Document对象;根据所述HBase索引配置针对每一个Document对象所指示存储在Solr引擎的位置,将构建的每一个Document对象写入Solr引擎中的相应位置中。
优选地,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
进一步包括:服务器端接收客户端根据所述检索结果以及Filters查询条件发送的Get查询对象;根据所述Get查询对象,在所述检索结果中查找满足所述Filters查询条件的查询结果,并将所述查询结果发送至客户端。
本发明还提供了一种基于HBase的全文检索方法,包括:
客户端向服务器端发送查询请求,所述查询请求携带查询条件,以使服务器端利用Solr引擎获取针对所述查询条件进行全文检索的检索结果;
接收服务器端返回的所述检索结果。
优选地,
进一步包括:客户端向服务器端发送Put对象,所述Put对象包括待索引的KeyValue集合,以使服务器端针对KeyValue集合中每一个KeyValue值构建Document对象,并将构建的Document对象写入Solr引擎中;
或,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
进一步包括:客户端根据所述检索结果以及Filters查询条件构建Get查询对象;并将构建的Get查询对象发送至服务器端,以使服务器端根据所述Get查询对象在所述检索结果中查找满足所述Filters查询条件的查询结果;并接收服务器端发送的查询结果;
或,
进一步包括:客户端通过调用HSearchTable对象向服务器端发送所述查询请求。
本发明还提供了一种服务器,包括:
扩展单元,用于将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;
接收单元,用于接收客户端发送的查询请求,所述查询请求携带查询条件;
转发单元,用于调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索;
发送单元,用于利用Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。
优选地,
所述扩展单元,用于扩展Solr Coprocessor对象和HSearchTable对象,预先定义Solr索引配置和HBase索引配置,所述Solr索引配置用于限定存储至Solr引擎中的索引内容,所述HBase索引配置用于指示索引内容存储在Solr引擎的位置;
所述扩展单元,用于服务器端接收客户端利用HSearchTable对象发送的Put对象,所述Put对象包括待索引的KeyValue集合;调用Solr Coprocessor对象,Solr Coprocessor对象根据所述Solr索引配置所限定的索引内容,遍历所述Put对象所包括待索引的KeyValue集合,为KeyValue集合中每一个KeyValue值构建Document对象;根据所述HBase索引配置针对每一个Document对象所指示存储在Solr引擎的位置,将构建的每一个Document对象写入Solr引擎中的相应位置中。
优选地,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
所述接收单元,用于接收客户端根据所述检索结果以及Filters查询条件发送的Get查询对象;根据所述Get查询对象,在所述检索结果中查找满足所述Filters查询条件的查询结果,并将所述查询结果发送至客户端。
本发明还提供了一种客户端,包括:
发送单元,用于向服务器端发送查询请求,所述查询请求携带查询条件,以使服务器端利用Solr引擎获取针对所述查询条件进行全文检索的检索结果;
接收单元,用于接收服务器端返回的所述检索结果。
优选地,
所述发送单元,用于向服务器端发送Put对象,所述Put对象包括待索引的KeyValue集合,以使服务器端针对KeyValue集合中每一个KeyValue值构建Document对象,并将构建的Document对象写入Solr引擎中;
或,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
所述发送单元,用于根据所述检索结果以及Filters查询条件构建Get查询对象;并将构建的Get查询对象发送至服务器端,以使服务器端根据所述Get查询对象在所述检索结果中查找满足所述Filters查询条件的查询结果;并接收服务器端发送的查询结果;
或,
所述发送单元,用于通过调用HSearchTable对象向服务器端发送所述查询请求。
本发明实施例提供了一种基于HBase的全文检索方法及装置,由于HBase中只利用Filters查询条件进行查询的效率较低,本发明实施例可以将HBase与Solr引擎相连接,使得在进行全文检索时,HBase的服务器端将全文检索的查询请求转发至Solr引擎,由Solr引擎进行全文检索,由于Solr引擎在进行全文检索时速度较快,因此提高了查询效率。
附图说明
图1是本发明实施例提供的方法流程图;
图2是本发明另一实施例提供的方法流程图;
图3是本发明又一实施例提供的方法流程图;
图4是本发明实施例提供的全文检索架构图;
图5是本发明实施例提供的索引构建流程图;
图6是本发明实施例提供的全文检索流程图;
图7是本发明实施例提供的客户端结构示意图;
图8是本发明实施例提供的服务器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种基于HBase的全文检索方法,将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;该方法可以包括以下步骤:
步骤101:服务器端接收客户端发送的查询请求,所述查询请求携带查询条件。
步骤102:服务器端调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索。
步骤103:Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。
根据上述方案,由于HBase中只利用Filters查询条件进行查询的效率较低,本发明实施例可以将HBase与Solr引擎相连接,使得在进行全文检索时,HBase的服务器端将全文检索的查询请求转发至Solr引擎,由Solr引擎进行全文检索,由于Solr引擎在进行全文检索时速度较快,因此提高了查询效率。
如图2所示,本发明实施例提供了一种基于HBase的全文检索方法,该方法可以包括:
步骤201:客户端向服务器端发送查询请求,所述查询请求携带查询条件,以使服务器端利用Solr引擎获取针对所述查询条件进行全文检索的检索结果。
步骤202:接收服务器端返回的所述检索结果。
根据上述方案,客户端在向服务器发送查询请求时,可以由服务器端利用Solr引擎实现全文检索,从而提供了查询的效率。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图3所示,本发明实施例提供了一种基于HBase的全文检索方法,该方法可以包括以下步骤:
步骤301:将HBase与Solr引擎相连接,扩展Solr EndPoint对象、SolrCoprocessor对象和HSearchTable对象,预先定义Solr索引配置和HBase索引配置。
如图4所示,在本实施例中,由于HBase在针对Filters查询条件进行检索时,检索效率较低,而Solr引擎在进行全文检索时的效率较高,因此可以将HBase与Solr引擎相连接,由Solr引擎执行HBase的全文检索操作。
其中,扩展的Solr Coprocessor对象用于实现索引的构建,HSearchTable对象用于被客户端调用所进行全文检索的执行操作,Solr EndPoint对象用于将查询请求转发给Solr引擎以实现Solr引擎的全文检索。
在本发明一优选实施例中,可以对Solr引擎进行配置,其中,Solr引擎是一种包括有多个Solr core的Solr集群,其中,需要设定Solr索引配置,Solr索引配置用于限定Solr core中存储的索引内容,该Solr索引配置可以如下表1所示:
表1:
Filed 是否索引 是否保存 说明
Row HBase表的RowKey(行关键字)
HTable HBase表名
Indexname 在HBase中定义的索引名(如列名)
Content HBase的Qualifier的KeyValue值
根据表1可知,Solr索引配置所限定的索引内容,其中该Solr索引配置可以是针对不同的HRegion所分别设置的,也可以是针对HBase中所有的HRegion进行设置的。除了Solr索引配置之外,当然还需要设置Solr集群中每个Solr core的配置以及solrconfig.xml。这两种的配置是针对Solr引擎的一般配置,可以是现有技术的配置,在此不作赘述。
在本发明一优选实施例中,可以对HBase实现HBase索引配置,该HBase索引配置用于指示索引内容存储在Solr引擎中的位置,且该HBase索引配置位于HTable的Family层面,该HBase索引配置可以如下表2所示:
表2:
属性 说明
name 索引名称也是Qualifier的名称,每个Family内唯一(如列名)
solrHttp 本索引所存储的Solr core的rest地址
synchronous 是否同步提交到Solr,默认YES
根据上表可知,HBase索引配置针对不同的索引名限定了不同的Solrcore,根据默认的同步提交到Solr的配置,将该索引名对应的索引内容存储至相应的Solr core中。其中,该HBase索引配置可以是针对不同的HRegion进行分别设置的,也可以是针对HBase中所有的HRegion进行设置的。
步骤302:实现put对象所包括待索引的KeyValue集合中每一个KeyValue值的索引构建。
如图5所示,为索引构建流程图,该索引构建的过程可以包括:
1、客户端利用使用HBase原生的API向服务器端发送Put(更新)对象。其中,该Put对象中Put对象包括待索引的KeyValue集合。
2、服务器端利用HRegion接收该Put对象。
3、服务器端调用Solr Coprocessor对象的PrePut对象。
4、Solr Coprocessor对象根据Solr索引配置所限定的索引内容,遍历Put对象所包括待索引的KeyValue集合,为KeyValue集合中每一个KeyValue值构建Document对象。其中,构建的Document对象的内容如表1所示,并根据HBase索引配置针对每一个Document对象所指示存储在Solr引擎的位置,将构建的每一个Document对象写入Solr引擎中的相应位置中。其中,写入到Solr引擎方式可以是同步或异步方式。同步方式是指每构建一个Document对象,将该该构建的Document对象写入Solr引擎中;异步方式指在构建了预设个数的Document对象之后,将该预设个数的Document对象一起写入Solr引擎中。
步骤303:实现全文检索。
如图6所示,为本实施例实现全文检索的流程图,该全文检索的过程可以包括:
1、客户端向HSearchTable对象发送查询请求。该查询请求可以是针对“2015年下学期期末考试成绩”
2、HSearchTable对象向服务器端中任一一个HRegion发送查询请求,该查询请求中携带HSearchTable对象所限定的查询条件,该查询条件如下表3所示:
表3:
参数 类型 说明
indexname String 索引名
query String 查询语句(需符合solr语法)
filters FilterList 其他的HBase查询条件集合
根据表3可知,查询条件用于限定Solr引擎在表3中指定的索引名下以及利用指定的查询语句进行查询“2015年下学期期末考试成绩”。
3、服务器端调用Solr EndPoint对象。
4、Solr EndPoint对象将查询请求转发至Solr引擎。
5、Solr引擎根据查询请求对满足查询条件的索引内容进行全文检索,SolrEndPoint对象接收Solr引擎返回的检索结果,并将检索结果发送至客户端。其中,检索结果中包括满足查询条件的RowKey值。
由于Solr引擎可以实现HBase中数据的模糊检索、同义词、相似度检索,因此对于Solr引擎返回的检索结果可能包括很多个。例如,搜索结果包括:包含和/或部分包含有“2015年下学期期末考试成绩”的所有文档的ID。在本发明一优选实施例中,Solr引擎在返回检索结果为排序后的结果,例如,可以根据包含“2015年下学期期末考试成绩”字数进行排序,也可以通过Solr计算出的符合客户端需求进行排序等。为了实现对检索结果的进一步查询,该实现全文检索的步骤还可以包括:
7、客户端根据检索结果以及Filters查询条件构建Get查询对象;并将构建的Get查询对象发送至服务器端。
8、服务器端根据Get查询对象在检索结果中查找满足Filters查询条件的查询结果,并将查询结果返回给客户端。其中,该Filters查询条件可以是“二年级1班2015年下学期期末考试成绩”。由于是Get查询对象,因此HBase会很快响应并返回到客户端。
在本实施例中,还可以利用HBase实现索引内容的管理。其中,HBase表分区会有Flush、Split等操作,此分区数据的索引也需要进行相应的管理,包括:
Flush:如果是异步提交,则在preFlush时将队列中未更新到solr集群的document集进行提交。
Split、Compact:由于是一个solr集群,且所有分区中的索引内容均存储至该Solr引擎中,因此即使HBase Table的拆分合也不会影响Solr引擎中的索引内容。
索引重建:Endpoint对象可以执行索引内容重建的功能。
如图7所示,本发明实施例还提供了一种服务器,包括:
扩展单元701,用于将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;
接收单元702,用于接收客户端发送的查询请求,所述查询请求携带查询条件;
转发单元703,用于调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索;
发送单元704,用于利用Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。
进一步地,所述扩展单元,用于扩展Solr Coprocessor对象,预先定义Solr索引配置和HBase索引配置,所述Solr索引配置用于限定存储至Solr引擎中的索引内容,所述HBase索引配置用于指示索引内容存储在Solr引擎的位置;
所述扩展单元,用于服务器端接收客户端发送的Put对象,所述Put对象包括待索引的KeyValue集合;调用Solr Coprocessor对象,Solr Coprocessor对象根据所述Solr索引配置所限定的索引内容,遍历所述Put对象所包括待索引的KeyValue集合,为KeyValue集合中每一个KeyValue值构建Document对象;根据所述HBase索引配置针对每一个Document对象所指示存储在Solr引擎的位置,将构建的每一个Document对象写入Solr引擎中的相应位置中。
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
所述接收单元,用于接收客户端根据所述检索结果以及Filters查询条件发送的Get查询对象;根据所述Get查询对象,在所述检索结果中查找满足所述Filters查询条件的查询结果,并将所述查询结果发送至客户端。
如图8所示,本发明实施例还提供了一种客户端,包括:
发送单元801,用于向服务器端发送查询请求,所述查询请求携带查询条件,以使服务器端利用Solr引擎获取针对所述查询条件进行全文检索的检索结果;
接收单元802,用于接收服务器端返回的所述检索结果。
进一步地,所述发送单元,用于向服务器端发送Put对象,所述Put对象包括待索引的KeyValue集合,以使服务器端针对KeyValue集合中每一个KeyValue值构建Document对象,并将构建的Document对象写入Solr引擎中;
或,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
所述发送单元,用于根据所述检索结果以及Filters查询条件构建Get查询对象;并将构建的Get查询对象发送至服务器端,以使服务器端根据所述Get查询对象在所述检索结果中查找满足所述Filters查询条件的查询结果;并接收服务器端发送的查询结果;
或,
所述发送单元,用于通过调用HSearchTable对象向服务器端发送所述查询请求。
根据上述方案,本发明的实施例至少可以实现如下有益效果:
1、由于HBase中只利用Filters查询条件进行查询的效率较低,本发明实施例可以将HBase与Solr引擎相连接,使得在进行全文检索时,HBase的服务器端将全文检索的查询请求转发至Solr引擎,由Solr引擎进行全文检索,由于Solr引擎在进行全文检索时速度较快,因此提高了查询效率。
2、可以利用Solr引擎实现HBase表中结构化文本数据的全文检索,实现对文本数据的模糊搜索、同义词、相似度检索等功能。
3、本发明实施例提供的方法是一种非侵入式的,客户端仍然使用HBase技术和编程模型,服务器端通过HBase的Coprocessor机制索引数据构建,通过Endpoint与搜索引擎交互实现检索功能,客户端不需要依赖搜索引擎的API。
4、本发明实施例提出的方法采用独立的搜索引擎处理数据的索引和检索,从而在降低HBase数据库压力同时提高查询性能。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种基于HBase的全文检索方法,其特征在于,将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;还包括:
服务器端接收客户端发送的查询请求,所述查询请求携带查询条件;
服务器端调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索;
Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:扩展Solr Coprocessor对象和HSearchTable对象,预先定义Solr索引配置和HBase索引配置,所述Solr索引配置用于限定存储至Solr引擎中的索引内容,所述HBase索引配置用于指示索引内容存储在Solr引擎的位置;
所述将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中,包括:服务器端接收客户端利用HSearchTable对象发送的Put对象,所述Put对象包括待索引的KeyValue集合;服务器端调用Solr Coprocessor对象,Solr Coprocessor对象根据所述Solr索引配置所限定的索引内容,遍历所述Put对象所包括待索引的KeyValue集合,为KeyValue集合中每一个KeyValue值构建Document对象;根据所述HBase索引配置针对每一个Document对象所指示存储在Solr引擎的位置,将构建的每一个Document对象写入Solr引擎中的相应位置中。
3.根据权利要求1或2任一所述的方法,其特征在于,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
进一步包括:服务器端接收客户端根据所述检索结果以及Filters查询条件发送的Get查询对象;根据所述Get查询对象,在所述检索结果中查找满足所述Filters查询条件的查询结果,并将所述查询结果发送至客户端。
4.一种基于HBase的全文检索方法,其特征在于,包括:
客户端向服务器端发送查询请求,所述查询请求携带查询条件,以使服务器端利用Solr引擎获取针对所述查询条件进行全文检索的检索结果;
接收服务器端返回的所述检索结果。
5.根据权利要求4所述的方法,其特征在于,
进一步包括:客户端向服务器端发送Put对象,所述Put对象包括待索引的KeyValue集合,以使服务器端针对KeyValue集合中每一个KeyValue值构建Document对象,并将构建的Document对象写入Solr引擎中;
或,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
进一步包括:客户端根据所述检索结果以及Filters查询条件构建Get查询对象;并将构建的Get查询对象发送至服务器端,以使服务器端根据所述Get查询对象在所述检索结果中查找满足所述Filters查询条件的查询结果;并接收服务器端发送的查询结果;
或,
进一步包括:客户端通过调用HSearchTable对象向服务器端发送所述查询请求。
6.一种服务器,其特征在于,包括:
扩展单元,用于将HBase与Solr引擎相连接,扩展Solr EndPoint对象,预先将HBase中待检索的KeyValue值所针对的索引内容存储至Solr引擎中;
接收单元,用于接收客户端发送的查询请求,所述查询请求携带查询条件;
转发单元,用于调用Solr EndPoint对象,Solr EndPoint对象将所述查询请求转发至Solr引擎,以使Solr引擎根据所述查询条件对索引内容进行全文检索;
发送单元,用于利用Solr EndPoint对象接收Solr引擎返回的检索结果,并将所述检索结果发送至客户端。
7.根据权利要求6所述的服务器,其特征在于,
所述扩展单元,用于扩展Solr Coprocessor对象和HSearchTable对象,预先定义Solr索引配置和HBase索引配置,所述Solr索引配置用于限定存储至Solr引擎中的索引内容,所述HBase索引配置用于指示索引内容存储在Solr引擎的位置;
所述扩展单元,用于服务器端接收客户端利用HSearchTable对象发送的Put对象,所述Put对象包括待索引的KeyValue集合;调用Solr Coprocessor对象,Solr Coprocessor对象根据所述Solr索引配置所限定的索引内容,遍历所述Put对象所包括待索引的KeyValue集合,为KeyValue集合中每一个KeyValue值构建Document对象;根据所述HBase索引配置针对每一个Document对象所指示存储在Solr引擎的位置,将构建的每一个Document对象写入Solr引擎中的相应位置中。
8.根据权利要求6或7任一所述的服务器,其特征在于,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
所述接收单元,用于接收客户端根据所述检索结果以及Filters查询条件发送的Get查询对象;根据所述Get查询对象,在所述检索结果中查找满足所述Filters查询条件的查询结果,并将所述查询结果发送至客户端。
9.一种客户端,其特征在于,包括:
发送单元,用于向服务器端发送查询请求,所述查询请求携带查询条件,以使服务器端利用Solr引擎获取针对所述查询条件进行全文检索的检索结果;
接收单元,用于接收服务器端返回的所述检索结果。
10.根据权利要求9所述的客户端,其特征在于,
所述发送单元,用于向服务器端发送Put对象,所述Put对象包括待索引的KeyValue集合,以使服务器端针对KeyValue集合中每一个KeyValue值构建Document对象,并将构建的Document对象写入Solr引擎中;
或,
进一步包括:所述检索结果中包括满足所述查询条件的RowKey值;
所述发送单元,用于根据所述检索结果以及Filters查询条件构建Get查询对象;并将构建的Get查询对象发送至服务器端,以使服务器端根据所述Get查询对象在所述检索结果中查找满足所述Filters查询条件的查询结果;并接收服务器端发送的查询结果;
或,
所述发送单元,用于通过调用HSearchTable对象向服务器端发送所述查询请求。
CN201510149269.0A 2015-03-31 2015-03-31 一种基于HBase的全文检索方法及装置 Active CN104731945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510149269.0A CN104731945B (zh) 2015-03-31 2015-03-31 一种基于HBase的全文检索方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510149269.0A CN104731945B (zh) 2015-03-31 2015-03-31 一种基于HBase的全文检索方法及装置

Publications (2)

Publication Number Publication Date
CN104731945A true CN104731945A (zh) 2015-06-24
CN104731945B CN104731945B (zh) 2018-04-06

Family

ID=53455832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510149269.0A Active CN104731945B (zh) 2015-03-31 2015-03-31 一种基于HBase的全文检索方法及装置

Country Status (1)

Country Link
CN (1) CN104731945B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095458A (zh) * 2015-07-29 2015-11-25 南威软件股份有限公司 一种基于时间特征支持复杂条件的大数据检索方法
CN105354251A (zh) * 2015-10-19 2016-02-24 国家电网公司 电力系统中基于Hadoop的电力云数据管理索引方法
CN106909671A (zh) * 2017-02-28 2017-06-30 湖南蚁坊软件股份有限公司 一种NoSQL数据库条件查询的方法及系统
CN107122443A (zh) * 2017-04-24 2017-09-01 中国科学院软件研究所 一种基于Spark SQL的分布式全文检索系统及方法
CN107247808A (zh) * 2016-09-21 2017-10-13 广州特道信息科技有限公司 一种分布式NewSQL数据库系统及图片数据查询方法
CN107395412A (zh) * 2017-07-18 2017-11-24 浪潮天元通信信息系统有限公司 告警信息查询的方法和装置
CN107577680A (zh) * 2016-07-05 2018-01-12 滴滴(中国)科技有限公司 基于HBase大数据的实时全文检索系统及其实现方法
CN108319636A (zh) * 2017-11-27 2018-07-24 大象慧云信息技术有限公司 电子发票数据查询方法
CN109669925A (zh) * 2018-11-21 2019-04-23 北京市天元网络技术股份有限公司 非结构化数据的管理方法及装置
CN110347722A (zh) * 2019-07-11 2019-10-18 软通智慧科技有限公司 基于HBase的数据获取方法、装置、设备及存储介质
CN113656350A (zh) * 2021-08-11 2021-11-16 杭州安恒信息技术股份有限公司 日志检索系统的构建方法、装置、计算机设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254917A1 (en) * 2011-04-01 2012-10-04 Mixaroo, Inc. System and method for real-time processing, storage, indexing, and delivery of segmented video
CN104102710A (zh) * 2014-07-15 2014-10-15 浪潮(北京)电子信息产业有限公司 一种海量数据查询方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254917A1 (en) * 2011-04-01 2012-10-04 Mixaroo, Inc. System and method for real-time processing, storage, indexing, and delivery of segmented video
CN104102710A (zh) * 2014-07-15 2014-10-15 浪潮(北京)电子信息产业有限公司 一种海量数据查询方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
APACHE FOUNDATION: ""Apache HBase"", 《HTTPS://BLOGS.APACHE.ORG/HBASE/ENTRY/COPROCESSOR_INTRODUCTION》 *
MR.CHENZ: ""基于Solr的HBase多条件查询测试"", 《HTTP://WWW.CNBLOGS.COM/CHENZ/ARTICLES/3229997.HTML》 *
ZACHARY_OOM: ""自学大数据:基于Solr实现HBase的文本索引"", 《HTTP://BLOG.CSDN.NET/SHIFENGLOV/ARTICLE/DETAILS/39929693》 *
邹敏昊: ""基于Lucene的HBase全文检索功能的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095458A (zh) * 2015-07-29 2015-11-25 南威软件股份有限公司 一种基于时间特征支持复杂条件的大数据检索方法
CN105354251A (zh) * 2015-10-19 2016-02-24 国家电网公司 电力系统中基于Hadoop的电力云数据管理索引方法
CN107577680B (zh) * 2016-07-05 2021-04-09 北京嘀嘀无限科技发展有限公司 基于HBase大数据的实时全文检索系统及其实现方法
CN107577680A (zh) * 2016-07-05 2018-01-12 滴滴(中国)科技有限公司 基于HBase大数据的实时全文检索系统及其实现方法
CN107491485A (zh) * 2016-09-21 2017-12-19 广州特道信息科技有限公司 生成执行计划的方法、计划单元和分布式NewSQL数据库系统
CN107391653B (zh) * 2016-09-21 2020-05-19 云润大数据服务有限公司 一种分布式NewSQL数据库系统及图片数据储存方法
CN107368575A (zh) * 2016-09-21 2017-11-21 广州特道信息科技有限公司 一种负载均衡的分布式NewSQL数据库系统
CN107402989B (zh) * 2016-09-21 2020-10-27 广州特道信息科技有限公司 一种全文检索建立的方法和分布式NewSQL数据库系统
CN107391653A (zh) * 2016-09-21 2017-11-24 广州特道信息科技有限公司 一种分布式NewSQL数据库系统及图片数据储存方法
CN107402987A (zh) * 2016-09-21 2017-11-28 广州特道信息科技有限公司 一种全文检索的方法和分布式NewSQL数据库系统
CN107402992A (zh) * 2016-09-21 2017-11-28 广州特道信息科技有限公司 一种分布式NewSQL数据库系统和全文检索建立方法
CN107402989A (zh) * 2016-09-21 2017-11-28 广州特道信息科技有限公司 一种全文检索建立的方法和分布式NewSQL数据库系统
CN107402988A (zh) * 2016-09-21 2017-11-28 广州特道信息科技有限公司 一种分布式NewSQL数据库系统和半结构化数据查询方法
CN107451221A (zh) * 2016-09-21 2017-12-08 广州特道信息科技有限公司 一种数据库接口单元和分布式NewSQL数据库系统
CN107463637A (zh) * 2016-09-21 2017-12-12 广州特道信息科技有限公司 一种分布式NewSQL数据库系统和数据储存方法
CN107480198A (zh) * 2016-09-21 2017-12-15 广州特道信息科技有限公司 一种分布式NewSQL数据库系统和全文检索方法
CN107247808A (zh) * 2016-09-21 2017-10-13 广州特道信息科技有限公司 一种分布式NewSQL数据库系统及图片数据查询方法
CN107491345A (zh) * 2016-09-21 2017-12-19 广州特道信息科技有限公司 一种写入图片数据和分布式NewSQL数据库系统
CN107329837B (zh) * 2016-09-21 2020-06-09 云润大数据服务有限公司 一种负载均衡的方法和单元、分布式NewSQL数据库系统
CN107368575B (zh) * 2016-09-21 2020-06-09 云润大数据服务有限公司 一种负载均衡的分布式NewSQL数据库系统
CN107463637B (zh) * 2016-09-21 2020-05-19 云润大数据服务有限公司 一种分布式NewSQL数据库系统和数据储存方法
CN107480198B (zh) * 2016-09-21 2020-05-19 云润大数据服务有限公司 一种分布式NewSQL数据库系统和全文检索方法
CN107329837A (zh) * 2016-09-21 2017-11-07 广州特道信息科技有限公司 一种负载均衡的方法和单元、分布式NewSQL数据库系统
CN107402988B (zh) * 2016-09-21 2020-01-03 云润大数据服务有限公司 一种分布式NewSQL数据库系统和半结构化数据查询方法
CN107247808B (zh) * 2016-09-21 2020-01-10 云润大数据服务有限公司 一种分布式NewSQL数据库系统及图片数据查询方法
CN107402987B (zh) * 2016-09-21 2020-04-03 云润大数据服务有限公司 一种全文检索的方法和分布式NewSQL数据库系统
CN106909671A (zh) * 2017-02-28 2017-06-30 湖南蚁坊软件股份有限公司 一种NoSQL数据库条件查询的方法及系统
CN107122443B (zh) * 2017-04-24 2019-09-17 中国科学院软件研究所 一种基于Spark SQL的分布式全文检索系统及方法
CN107122443A (zh) * 2017-04-24 2017-09-01 中国科学院软件研究所 一种基于Spark SQL的分布式全文检索系统及方法
CN107395412A (zh) * 2017-07-18 2017-11-24 浪潮天元通信信息系统有限公司 告警信息查询的方法和装置
CN108319636A (zh) * 2017-11-27 2018-07-24 大象慧云信息技术有限公司 电子发票数据查询方法
CN109669925A (zh) * 2018-11-21 2019-04-23 北京市天元网络技术股份有限公司 非结构化数据的管理方法及装置
CN110347722A (zh) * 2019-07-11 2019-10-18 软通智慧科技有限公司 基于HBase的数据获取方法、装置、设备及存储介质
CN113656350A (zh) * 2021-08-11 2021-11-16 杭州安恒信息技术股份有限公司 日志检索系统的构建方法、装置、计算机设备和介质

Also Published As

Publication number Publication date
CN104731945B (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN104731945A (zh) 一种基于HBase的全文检索方法及装置
CN106227800B (zh) 一种高度关联大数据的存储方法及管理系统
US9805079B2 (en) Executing constant time relational queries against structured and semi-structured data
US9798772B2 (en) Using persistent data samples and query-time statistics for query optimization
US9025892B1 (en) Data record compression with progressive and/or selective decomposition
CN103020204B (zh) 一种对分布式顺序表进行多维区间查询的方法及其系统
US9870382B2 (en) Data encoding and corresponding data structure
US8880463B2 (en) Standardized framework for reporting archived legacy system data
US9535940B2 (en) Intra-block partitioning for database management
CN101158958B (zh) 基于MySQL存储引擎的融合查询方法
CN111506569B (zh) 数据存储方法、装置、电子装置
CN106294695A (zh) 一种面向实时大数据搜索引擎的实现方法
CN102982103A (zh) 一种olap海量多维数据维存储方法
CN111680043B (zh) 一种针对海量数据进行快速检索方法
US9953058B1 (en) Systems and methods for searching large data sets
CN112231321A (zh) 一种Oracle二级索引及索引实时同步方法
CN101963993B (zh) 一种数据库单表记录快速查找的方法
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
US11520763B2 (en) Automated optimization for in-memory data structures of column store databases
US20150012563A1 (en) Data mining using associative matrices
CN102831146A (zh) 数据库子串过滤索引系统及其构建、查询方法
CN115794861A (zh) 基于特征摘要的离线数据查询复用方法及其应用
CN102597969A (zh) 带属性的键值存储的数据库管理装置及其键值存储结构的高速缓存装置
CN103891244B (zh) 一种进行数据存储和检索的方法及装置
CN101216852A (zh) 基于序列模式的数据导入及查询方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180807

Address after: 250100 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee after: Shandong wave cloud Mdt InfoTech Ltd

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee before: Inspur Group Co., Ltd.

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee after: Inspur cloud Information Technology Co., Ltd

Address before: 250100 Ji'nan science and technology zone, Shandong high tide Road, No. 1036 wave of science and Technology Park, building S06

Patentee before: SHANDONG LANGCHAO YUNTOU INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address