我是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"}
}
}'
};
谢谢!
答案 0 :(得分:1)
首先:您不能只查看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"}
}
}'
};