- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Phoenix Search Index 功能与应用场景介绍
展开查看详情
1 . ;hSeRNx SeFrHh IRIex 功能n应用实践介绍 天斯 s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
2 . 目录 / 1SRXeRXs &' 背景 &( 架构 &) 功能 &* 应用实践 &+ 后续 Q/ s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
3 . 01 背景 构建在云50Fsek的应用p务越来越复杂g提出更多综合查询的需求g同 时又希望更简单易用的编程方式 s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
4 . ' 背景 / 在云50Fsevk的各种p务 • 消费ᦈܔғ ෛ ᗑᶭ • 姓名、地址模糊查询 ... ࣈቘ֖ᗝ ၾᩇᦈܔ ᘱॠ௳מ • ձᦈܔկand/orᕟ ᧃັݳ • 物流௳מғ ࢶᇆ HBase • 模糊ັᧃ ӱۓ ັᧃӱۓ ಸᤒ • 任意条件FRI/Sr组合查询 փఽ • 空间查询 ௳מ • 新闻ᗑᶭғ • 分词ັᧃ ࿈ ኪמᨴܔ አಁ ᗑ໒ • … … ᇙ s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
5 . ' 背景 / 在云50Fsevk提出的查询需求n解决方案 ;hSeRNx 检索h{级索引、计算l推server HT 使用hSQL 50Fse 50Fse KSr SSPr 存储h大数据存储、分布式 检索h模糊查询、分词查询、任意条件组合、 检索h前缀匹配查询g点查g范围查找 分组查询、空间查询等 使用hhbFse FTN 使用hhbFse FTN sSPr FTN s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
6 . ' 背景 / 在云50Fsevk提出的查询需求n解决方案 SeFrHh IRIex ;hSeRNx 检索h全文索引g模糊/分词/分组/空间查询g 检索h{级索引、计算l推server HT 任意条件组合查询等 使用hSQL 索引管理hrebYNPI、bFHOTressYre 使用hSQL 50Fse 50Fse KSr SSPr 存储h大数据存储、分布式 检索h模糊查询、分词查询、任意条件组合、 检索h前缀匹配查询g点查g范围查找 分组查询、空间查询等 使用hhbFse FTN 使用hhbFse FTN sSPr FTN s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
7 . 02 架构 ;hSeRNx SeFrHh IRIex构建在ThSeRNx/sSPr/hbFsevkg集成n;hSeRNx sg保持z;hSeRNx SQL的易用性同时g给50Fse提供z更强大的全文引 擎的检索能力. s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
8 . ( 架构 / SeFrHh IRIex架构 create search index on foo(col1); select * from foo where col0 = ‘hello’ and contains(col1, ‘world’) ฃአ Phoenix Search Index CRUD Indexer CRUD collection හഝᛆᙡ MultiGet(col0 = ‘hello’ ) rebuild index contains(col1, ‘world’) HBase Search Service SearchManager Solr Cloud Region හഝྍݶ Region Region Search Meta Inverted Index batchs Batch docs DocValues ྍݶ᬴ hlog hlog Index Rebuilder hlog hlog ReplicationConsumer Full-text ᑞਧ replica RPC Fake-HBase docs ReplicationSource parser solr client FST/BKD-Tree Ӟᛘ backpressure backpressure ZooKeeper HDFS s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
9 . ( 架构 / SeFrHh IRIex功能概览 JDBC ฃአ ྍݶᔱ ݢഴ SQLᤒᬡғDDL ਂᰁහഝӞե ܴݍّګᶶ Phoenix Search Index ᓕቘᔱ҅DML ݺރᔱݢ ᐶᕚࣁ̶ྍݶᕚහഝ ൊفහഝ҅Select ᥠ̶᬴ ݣݸਫीᰁ̶ྍݶ ັᧃᔱ Ӟᛘᦤכ ᴳ౮ ꧋ᦜݱᐿඳᵑ̵ෙ Solrؙਂݝᔱڜ HBase search Solr ᅩ҅හഝ๋ᕣྍݶ ӧਂؙܻᤒ҅౮ Cluster manager Cloud Ӟᛘ ๋ս۸ backpressure s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
10 . ( 架构 / SeFrHh IRIex易用性 DDL • CREATE SEARCH INDEX [IF NOT EXISTS] ON [namespace.]table_name (column { option : value } [, …]) options; • DROP SEARCH INDEX IF EXISTS indexName ON tableRef • ALTER SEARCH INDEX ON [namespace.]table_name ADD [IF NOT EXISTS] (column { option : value } [, ...]) • ALTER SEARCH INDEX ON [namespace.]table_name DROP COLUMN colume_list • ALTER SEARCH INDEX ON [namespace.]table_name SET options • ALTER SEARCH INDEX ON [namespace.]table_name RELOAD • ALTER SEARCH INDEX ON [namespace.]table_name REBUILD • DESCRIBE SEARCH INDEX ON [namespace.]table_name Query • SEARCH_QUERY • SELECT selectors FROM table WHERE SEARCH_QUERY = ‘search_expression’ [LIMIT n] [ORDER BY column_name] • Native Query • SELECT selectors FROM table WHERE native_condition_expression [LIMIT n] [ORDER BY column_name] • native_condition_expressionғCONTAINS҅LIKE҅AND҅ORᒵ s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
11 . ( 架构 / SeFrHh IRIex索引同步 Phoenix Search Index replica RPC HBase Search Service backpressure 增量 重建 异常 延时 数据更新增量 支持全量重建一条SQL hbFse/sSPr等服务异 增量同步通过 实时同步 运行g支持断点重试g 常mq数据g数据同 bFHOTressYreg延时 轻量分布式任务 步最终一致性 可控g满足m同需求 s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
12 . 03 功能 ;hSeRNx SeFrHh IRIex集成z50Fse/SSPr/;hSeRNx各自的优点g满足z p务的各种综合复杂查询需求. s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
13 . ) 功能 / SeFrHh IRIex功能 ;hSeRNx SeFrHh IRIex 50Fse ;hSeRNx 50Fse KSr SSPr ;hSeRNx SeFrHh IRIex构建在SSPr/50Fsevkg利用SSPrt50Fse存储索引g并封装一整套完整流程自动化完成索引识别n检索回 查g给50Fse提供z复杂查询的检索能力。另外g;hSeRNx SeFrHh IRIexx正如其名g集成在;hSeRNxvsg同样拥有;hSeRNx SQL 的用户接口g简单易用g学y成本低。 s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
14 . ) 功能 / SeFrHh IRIex分词查询 分词查询h 输入关键字g匹配文本s带此关键字的字段 e 例如h某视频娱w网站g关键字搜索标题带有 eIYHFXNSR的视频 sePeHX * KrSQ vNIeS [here seFrHhEUYer].'XNXPe,eIYHFXNSR' SrIer b] HreFXeEXNQe IesH PNQNX '& sePeHX * KrSQ vNIeS [here HSRXFNRs(XNXPe,'eIYHFXNSR') SrIer b] HreFXeEXNQe IesH PNQNX '&. s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
15 . ) 功能 / SeFrHh IRIex复杂条件任意组合 多条件任意组合查询h 各种条件v间进行任意的组合查询 提升用户查询筛选的灵活性 e 例如h购物网站可以按照 裤子、大小、型号、尺码颜色、长 短风格等g任意组合查询g并按照各自类型的相关度排序 sePeHX * KrSQ TrSIYHX [here seFrHhEUYer].'sNze,*( /N2 HSPSr,"reI" := sX]Pe,dHPFssNH"' SrIer b] HreFXeEXNQe IesH PNQNX '&. s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
16 . ) 功能 / SeFrHh IRIex索引重建 给表创建seFrHh NRIex索引 1=3/T3 S3/=15 IN23A CI4 N:T 3AISTSD :N CRFQesTFHe.DXFbPeERFQe (HSPYQR _ STXNSR , vFPYe } C, fD) STXNSRs; Batch Rebuild 增加/删除索引列 ALTER SEARCH INDEX ON [namespace.]table_name ADD [IF NOT hbase kvs index data EXISTS] (column { option : value } [, ...]) ALTER SEARCH INDEX ON [namespace.]table_name DROP COLUMN colume_list 修改索引列属性 ALTER SEARCH INDEX ON [namespace.]table_name SET options ALTER SEARCH INDEX ON [namespace.]table_name REBUILD s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
17 . 04 应用实践 u例说明;hSeRNx SeFrHh IRIex如何简单应用到实际案例当s。 s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
18 . * 应用实践 / SeFrHh IRIexu例IeQS u例h某物流运单管理系统g运单表有h运单编号、运单状态、件数、货物重量、创建时间、收件}、收件}地址等等几十 r字段g这里简单u例几r字段IeQS如lh 创建表h 插入数据h 1=3/T3 [F]bNPP( UPSERT INTO waybill values(‘1001’,0,1,0.4, 1558627680, ‘1558627680’ , ‘ୟӣ’); NI vFrHhFr RSX RYPP TrNQFr] Oe] , UPSERT INTO waybill values(‘1002’,0,1,0.4, 1558627740 , ‘1558627740’ , ‘ࢥ’); ff sXFXe NRXeLer, FQSYRX NRXeLer, [eNLhX ISYbPeg HreFXeXNQe PSRL, FIIr vFrHhFr, RFQe vFrHhFr ); s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
19 . * 应用实践 / SeFrHh IRIexu例IeQS u例h某物流运单管理系统g运单表有h运单编号、运单状态、件数、货物重量、创建时间、收件}、收件}地址等等 创建seFrHh NRIex索引h CREATE SEARCH INDEX ON waybill (state,name ); 查询未发货的运单g或姓名t张三的所有运单 sePeHX * KrSQ [F]bNPP [here seFrHhEUYer].aRFQe,c张三d := sXFXe,& b 删除索引h DROP SEARCH INDEX ON waybill; 创建带分词的索引h CREATE SEARCH INDEX ON waybill (state,name, addr {ANALIZER=standard} ); ັᧃᯈᭆکӮᕉय़᭲ᴫᬪ҅Ӭᬩܔᇫாԅ๚ݎᨵጱ sePeHX * KrSQ [F]bNPP [here seFrHhEUYer].aFIIr,co纪大道d/N2 sXFXe,& b s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
20 . * 应用实践 / SeFrHh IRIex 测试延时控制情况 hbase solr ሾहғԯHBase 4c8g ຽٵᇇ 2 workerᜓᅩ̶ ၥᦶғܔᕚᑕൊܔ҅فregion҅ൊܔفshardӷreplica҅ڦړൊف300w/600wၥᦶܻ҅ᤒ20ڜ, ᔱ15 ڜ 735s 736s ܴݍᯈᗝғ꧋ᦜ15ᑁྍݶ҅᩻ᬦڞᴴၞ҅solr commitᳵԅ1s 800 ᕮຎғܔᕚᑕൊف300wᤈ҅hbaseᘙ368s ଘ࣐8147ᤈ/ᑁ ҅solrྍݶᘙ372s ଘ࣐ 8065ᤈ/ᑁ҅ 600 य़༷=372-368=4sҔ 368s 372s ᒫԫེၥᦶൊف600wᤈ҅೮ᖅๅԋӞԶ҅hbaseᘙ735s ଘ࣐8160ᤈ/ᑁ҅solrفପᘙ736s ଘ࣐8152ᤈ/ᑁ҅ 400 य़༷=736-735=1s̶ 200 ᕮᦞғܴݍސጱఘ٭ӥ҅ᦡᗝݳቘܴݍᯈᗝ҅ݸhbaseٟفӨsolrහഝྍݶच ഴګԅࣁreplication+autocommit = 15+1 ᑁ̶ٖhbaseጱٟف᭛ଶᤩܴݍᴥಯӥ҅ 0 hbaseൊکݑفsolrൊف᭛ଶጱܴݍᴴࢩ̶ګԅܴݍᴴၞ꧊᪃ड़solrၾᩇ҅ಅզپԒဌํॡग़ञᑌ҅ ܔᕚᑕفପ300w ܔᕚᑕفପ600w ളᬪྍݶපຎ̶ s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
21 . 05 后续 Q/ ;hSeRNx SeFrHh IRIex兼容RFXNve sUP的方式更简单更易用g支持更多全 文特性的操作SQL KYRHXNSRg例如分词查找HSRXFNRs、[NPIHFrI模糊等i 并可sUP指定延时同步数据配置g延时更有保障. s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT
22 . T5/NK B:U 50Fse 技术社区公众号 社区管理员 50Fse " STFrO 钉钉社区大群 s国 50Fse 技术社区网站hhXXT,//hbFse.LrSYT