Stratio Lucene for Cassandra

时间:2017-04-20 18:00:56

标签: cassandra lucene stratio

我是Lucene的新手。刚开始。我有几个基本问​​题:

  • 如何查看使用Stratio Lucene创建的所有索引?

  • 如何删除使用Stratio Lucene创建的索引?

  • 之间有什么区别
    fields: {
         fld_1: {type: "string"},
         fld_2: {type: "text"}
     }
    

键入:" string"并输入:" text"

我要求区别的原因是因为我在尝试创建我的第一个lucene索引时遇到了错误。我在Cassandra的专栏是这样的:' fld_1 text',但是当我尝试在fld_1上创建和索引时,就像上面那样抛出异常

ConfigurationException: 'schema' is invalid : Unparseable JSON schema: Unexpected character ('}' (code 125)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name
at [Source: {
fields: {

Lucene索引脚本:

CREATE CUSTOM INDEX lucene_index ON testTable ()
USING 'com.stratio.cassandra.lucene.Index'
WITH OPTIONS = {
   'refresh_seconds': '1',
   'schema': '{
fields: {
     fld_1: {type: "string"},
     fld_2: {type: "string"},
     id: {type: "integer"},
     test_timestamp: {type: "date", pattern: "yyyy/MM/dd HH:mm:ss"}
  }
}'
};

谢谢!

1 个答案:

答案 0 :(得分:1)

首先:您不能只查看Stratio Lucene索引,下面的查询会显示所有索引

SELECT * FROM system."IndexInfo"; 

第二:您可以使用DROP INDEX index_name命令删除索引。即

DROP INDEX test;

第三:在Stratio Lucene Index中,string是未分析的文本值,text是根据指定的分析器分析的语言识别文本值。

这意味着如果您将字段指定为字符串,它将直接索引和查询。但是如果您使用文本,那么它将首先由您指定的分析器进行分析,默认为default_analyzerorg.apache.lucene.analysis.standard.StandardAnalyzer)然后索引和查询。

编辑:

您必须先在cassandra中创建一个文本字段,然后在创建索引时指定它。

示例:

ALTER TABLE testtable ADD lucene text;

CREATE CUSTOM INDEX lucene_index ON testTable (lucene) USING 'com.stratio.cassandra.lucene.Index'
WITH OPTIONS = {
   'refresh_seconds': '1',
   'schema': '{
     fields: {
         fld_1: {type: "string"},
         fld_2: {type: "string"},
         id: {type: "integer"},
         test_timestamp: {type: "date", pattern: "yyyy/MM/dd HH:mm:ss"}
     }
   }'
};

更多信息:https://github.com/Stratio/cassandra-lucene-index/blob/branch-3.0.13/doc/documentation.rst#text-mapper