Cassandra 的 Stratio Lucene

Stratio Lucene for Cassandra

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

键入:"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"}
  }
}'
};

谢谢!

第一:你不能只查看Stratio Lucene索引,下面的查询会显示所有索引

SELECT * FROM system."IndexInfo"; 

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

DROP INDEX test;

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

也就是说,如果你指定一个字段为字符串,它会直接索引和查询。但是如果你使用文本那么它会首先被你指定的分析器分析,默认是 default_analyzer(org.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