0
Stratio Cassandra Lucene Indexで小文字のプレフィックスフィルタリング/クエリを実行することは可能ですか?私はこの特定のユースケースに関する文書を見つけることができませんでした。Stratio Cassandra Lucene Indexで小文字のプレフィックスフィルタリングを行う方法
Stratio Cassandra Lucene Indexで小文字のプレフィックスフィルタリング/クエリを実行することは可能ですか?私はこの特定のユースケースに関する文書を見つけることができませんでした。Stratio Cassandra Lucene Indexで小文字のプレフィックスフィルタリングを行う方法
クエリのケーシングは、インデックス作成中にLucene text analyzerの作業がどのように使用されているかによって異なり、クエリ時には決定できません。大文字と小文字を区別しない接頭辞検索を行う場合は、小文字の語句を生成するアナライザーを使用してマッパーを使用する必要があります。これらの用語は、検索時に索引付けされ、照合されます。例:
CREATE KEYSPACE test
WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 1};
USE test;
CREATE TABLE test (
id INT PRIMARY KEY,
body TEXT
);
CREATE CUSTOM INDEX test_index ON test()
USING 'com.stratio.cassandra.lucene.Index'
WITH OPTIONS = {
'refresh_seconds' : '1',
'schema' : '{
fields : {
body1 : {type :"string", column:"body", case_sensitive:false},
body2 : {type :"string", column:"body", case_sensitive:true}
}
}'
};
INSERT INTO test(id,body) VALUES (1, 'foo');
INSERT INTO test(id,body) VALUES (2, 'Foo');
INSERT INTO test(id,body) VALUES (3, 'bar');
INSERT INTO test(id,body) VALUES (4, 'Bar');
SELECT * FROM test WHERE expr(test_index,
'{filter:{type:"prefix", field:"body2", value:"f"}}'); -- Returns foo
SELECT * FROM test WHERE expr(test_index,
'{filter:{type:"prefix", field:"body2", value:"F"}}'); -- Returns Foo
SELECT * FROM test WHERE expr(test_index,
'{filter:{type:"prefix", field:"body1", value:"f"}}'); -- Returns foo and Foo
SELECT * FROM test WHERE expr(test_index,
'{filter:{type:"prefix", field:"body1", value:"F"}}'); -- Returns no results
ありがとうございました!まさに私が探していたもの。 – user1019182