gpText3.1 常用操作语句

创建空索引
SELECT * FROM gptext.create_index('public','gptextindex2','id','name');   //name默认搜索域,id是唯一主键
SELECT * FROM gptext.create_index('public','gptextindex2','id','name',false); //可以设置相同的id
创建空索引可以指定索引类型
SELECT * FROM gptext.create_index('wikipedia', 'articles', '{id, title, content, refs}', '{long, text_intl, text_intl, text_intl}', 'id', 'content', true);

查询索引状态

gptext-state -D //验证索引已经创建
自定义索引
gptext-config edit -i testGP.public.gptextindex2 -f managed-schema -e vim
-i 指定修改的索引名
-f 修改的文件名
-e 打开文件的方式(可选)
填充索引
SELECT * FROM gptext.index(TABLE(SELECT * FROM "public".gptextindex2),'testGP.public.gptextindex2');
提交索引
SELECT * FROM gptext.commit_index('testGP.public.gptextindex2');
优化索引(将所有段合并为少量段,以提高效率)
 SELECT * FROM gptext.optimize_index('demo.wikipedia.articles', 10);
 删除索引
 SELECT * FROM gptext.delete('demo.wikipedia.articles', 'toxin');//本示例删除"toxin"默认搜索字段中包含的所有文档
 SELECT * FROM gptext.delete('demo.wikipedia.articles', '*:*');//从索引中删除所有文档
 SELECT * FROM gptext.commit_index('demo.wikipedia.articles');//提交
 SELECT * FROM gptext.drop_index('demo.wikipedia.articles');//完全删除索引

将字段添加到索引
ALTER TABLE myarticles ADD notes text; //向数据库添加字段
SELECT * FROM gptext.add_field('demo.wikipedia.myarticles', 'notes', false, false);//添加solr的field
SELECT * FROM gptext.reload_index('demo.wikipedia.myarticles');//从新加载索引
从索引删除字段
SELECT * FROM gptext.drop_field('demo.wikipedia.myarticles', 'notes');
SELECT * FROM gptext.reload_index('demo.wikipedia.myarticles');
列出所有索引
gptext-state -D
从GPText索引添加和删除分区
SELECT * FROM gptext.partition_status('demo.twitter.message');  查看数据库分区
 SELECT * FROM gptext.index(TABLE(SELECT * FROM twitter.message_1_prt_dec2011), 'demo.twitter.message');  从新分区添加索引到gptext
 SELECT * FROM gptext.commit_index('demo.twitter.message'); 提交
 SELECT * FROM gptext.delete('demo.twitter.message', '__partition:message_1_prt_dec2011'); 删除
查询默认字段(name)
SELECT * FROM gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'testGP.public.gptextindex2','廖说', null,'rows=2') ORDER BY score desc;
关联查询
SELECT a.id,a.name,q.score FROM gptextindex2 a, gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'testGP.public.gptextindex2',
       '曹魏柏', null,'rows=2') q WHERE a.id_seq = q.id_seq;

查询union域
SELECT * FROM gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'testGP.public.gptextindex2',
       'union:女', null,'fl=id,name,address');

AND搜索示例 rows=5 最多返回10条

SELECT a.id, a.date_time, a.title, q.score
 FROM wikipedia.articles a,
      gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'demo.wikipedia.articles', 
        'solar AND battery', null, 'rows=5') q
 WHERE q.id::int8 = a.id
 ORDER BY score DESC;

 OR搜索示例  rows=5 最多返回10条
  SELECT a.id, a.date_time, a.title, q.score
FROM wikipedia.articles a, 
     gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'demo.wikipedia.articles',
       'solar OR battery', null, 'rows=5') q
WHERE  q.id::int8 = a.id 
ORDER BY score DESC;
搜索非默认字段
SELECT a.id, a.date_time, a.title, q.score
FROM wikipedia.articles a,
     gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'demo.wikipedia.articles',
       'title:solar', null, null) q
WHERE q.id::int8 = a.id
ORDER BY score DESC;
OR和and和在一起使用
SELECT a.id, a.date_time, a.title, q.score
FROM wikipedia.articles a,
     gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'demo.wikipedia.articles',
       'title:(solar AND (power OR energy))', null, null) q
WHERE q.id::int8 = a.id;
示例搜索content列中具有“光合作用” 但列中没有“太阳能”的文章title
 SELECT a.id, a.date_time, a.title, q.score
FROM wikipedia.articles a,
     gptext.search(TABLE(SELECT 1 SCATTER BY 1), 'demo.wikipedia.articles',
       'photosynthesis and -title:solar', null, null) q 
WHERE q.id::int8 = a.id
ORDER BY score DESC;
过滤搜索结果
示例查找在content列中具有“核”一词的文章,然后应用两个过滤器查询以删除在title列中具有“太阳能”的文章和在列中没有“ power”的文章title
切面 gptext.faceted_field_search()  聚类  
SELECT * FROM gptext.faceted_field_search(
    'demo.store.products', '*:*', 过滤查询, '{聚类字段}', (任何一个类别要报告的最大结果数,-1所有结果), (类别必须包含在结果中的最小结果数));

SELECT * FROM gptext.faceted_field_search(
    'demo.store.products', '*:*', null, '{category}', -1, 1);

 SELECT * FROM gptext.faceted_field_search(
    'demo.store.products', '*:*', '{category:Desktops}', '{brand}', -1, 1);
面向搜索查询faceted_query_search()
示例报告在默认搜索列(title)中包含“ windows”,“ intel”以及“ windows”和“ intel”的文档数
SELECT * FROM gptext.faceted_query_search(
    'demo.store.products', '*:*', null, 
    '{windows, intel, windows AND intel}');
     query_name     | value_count
-------------------+-------------
 intel             |           7
 windows           |           4
 windows AND intel |           2

示例中的方面查询是Solr范围查询,该查询在price字段上定义了四个自定义范围。
 SELECT * FROM gptext.faceted_query_search(
    'demo.store.products', '*:*', null,
    '{price:[* TO 200],price:[201 TO 250],price:[251 TO 300],price:[301 TO *]}');
       query_name     | value_count
--------------------+-------------
 price:[201 TO 250] |           2
 price:[251 TO 300] |           2
 price:[301 TO *]   |          11
 price:[* TO 200]   |          35
 在范围上刻面gptext.faceted_range_search()
此范围搜索示例将价格字段分为0到1200之间的范围(间隔为100)。range_value结果中的列是文本值,因此该ORDER BY子句将值强制转换为浮点类型。
 SELECT * from gptext.faceted_range_search(
    'demo.store.products', '*:*', null, 'price', '0', '1200', '100')
    ORDER BY range_value::float;
    field_name | range_value | value_count
------------+-------------+-------------
 price      | 0.0         |          23
 price      | 100.0       |          12
 price      | 200.0       |           4
 price      | 300.0       |           6
 price      | 400.0       |           0
 price      | 500.0       |           1
 price      | 600.0       |           1
 price      | 700.0       |           1
 price      | 800.0       |           0
 price      | 900.0       |           1
 price      | 1000.0      |           0
 price      | 1100.0      |           1
 高亮
 只索引未存储
 如果该字段已建立索引但未存储,则必须将搜索结果与数据库表结合在一起,并使用该gptext.highlight()功能将标记标签应用于列数据
 建立索引并存储
 如果对该字段建立索引并存储,Solr可以应用标记标签并在搜索查询的结果中返回标记的字段。这与突出显示GPText外部索引的方式相同。(请参阅突出显示外部索引搜索结果。)将此方法与常规GPText索引一起使用,需要修改索引的solrconfig.xml配置文件。
 查询解析器 
 SELECT a.title, q.score
FROM wikipedia.articles a,gptext.search(TABLE(SELECT 1 SCATTER BY 1),'demo.wikipedia.articles', '+hydroelectric -solar', null, 'defType=dismax') q
WHERE a.id = q.id::int8;

使用DisMax和扩展DisMax查询解析器
select * FROM gptext.search (TABLE(SELECT 1 SCATTER BY 1), 'testGP.public.gptextindex4', '{!edismax qf="name"} 于', null, 'fl=*')


函数
返回匹配的文档数

SELECT * FROM gptext.search_count('demo.wikipedia.articles', 'bubble', null);
创建外部表(日志检索)首先需要登录
SELECT gptext.external_login('s3', 's3://s3-us-west-2.amazonaws.com', 'mys3_auth');
SELECT * FROM gptext.create_index_external('gptext-docs');
SELECT * FROM gptext.index_external('{http://gptext.docs.pivotal.io/archives/GPText-docs-213.pdf}','gptext-docs');
每个段返回5行,并在message_text列中突出显示文本“ iphone”  高亮
SELECT t.id,
gptext.highlight(t.message_text, 'message_text', s.hs) message
FROM twitter.message t,
     gptext.search(TABLE(SELECT 1 SCATTER BY 1),
        'demo.twitter.message','{!gptextqp}iphone', null,
         'rows=5&hl=true&hl.fl=message_text' ) s
WHERE t.id = s.id::int8;
时间间隔搜索
方面的日期范围为2011年8月1日午夜至2011年11月1日午夜,间隔为7天。
SELECT * 
FROM gptext.faceted_range_search('demo.twitter.message', '*:*', null, 
       'created_at', '2011-08-01T00:00:00Z', 
       '2011-11-01T00:00:00Z', '+7DAY');
查询所有collection的doc数
  SELECT * FROM gptext.index_size();
每个索引的document数
SELECT * FROM gptext.index_size('demo.wikipedia.articles');

zookeper 操作  添加文件
将本地文件附加/home/gpadmin/stopwords.add到顶级ZooKeeper文件stopwords.txt以获取索引demo.wikipedia.articles:
SELECT * FROM gptext.config_append('demo.wikipedia.articles', '/home/gpadmin/stopwords.add', 'stopwords.txt');
从ZooKeeper删除索引配置文件。
select * from gptext.config_delete('demo.wikipedia.articles', 'stopwords.add');
显示ZooKeeper索引配置文件的内容。  gptext.config_get()
select * from gptext.config_get('demo.wikipedia.articles', 'synonyms.txt')
列出索引的ZooKeeper配置文件和目录。gptext.config_list()  
 select * from gptext.config_list('demo.wikipedia.articles', boolean)   boolean可选的,是否一递归方式列出可选目录
 select * from gptext.config_list('demo.wikipedia.articles', false)
 在ZooKeeper lang子目录中列出以下的ZooKeeper配置文件
 select * from gptext.config_list('demo.wikipedia.articles', 'lang', false);
 将索引配置文件上载到ZooKeeper,以替换任何现有的同名文件 gptext.config_upload()
 将本地文件上传/home/gpadmin/stopwords.txt到ZooKeeper,覆盖stopwords.txt索引的现有文件demo.wikipedia.articles
  select * from gptext.config_upload('demo.wikipedia.articles', '/home/gpadmin/stopwords.txt');
  将本地文件上传/home/gpadmin/stopwords_japanese.txt到ZooKeeper,覆盖lang/stopwords_ja.txt索引文件demo.wikipedia.articles
  select * from gptext.config_upload('demo.wikipedia.articles', '/home/gpadmin/stopwords_japanese.txt', 'lang/stopwords_ja.txt');
显示在配置中为指定索引定义的字段类型的分析器链。gptext.get_field_type()
 SELECT gptext.get_field_type('demo.wikipedia.articles', 'text');

重新加载Solr配置文件(如果已修改)。 gptext.reload_index()
SELECT * FROM gptext.reload_index('demo.wikipedia.articles');


计算表中的记录数。gptext.count_t()
SELECT * FROM gptext.count_t('demo.wikipedia.articles');

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞腾创客

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值