Cassandra 的 Stratio Lucene
Stratio Lucene for Cassandra
我是 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"}
}
}'
};
谢谢!
第一:你不能只查看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"}
}
}'
};
我是 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"}
}
}'
};
谢谢!
第一:你不能只查看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"}
}
}'
};