Thanks for the reply. Could you please provide what index definition did you use? With the index from my script I get the following results:
cqlsh:test> select * from escape; id | val ----+----------- 1 | %escapeme 2 | escape%me 3 | escape%esc Contains search cqlsh:test> SELECT * FROM escape WHERE val LIKE '%%esc%'; id | val ----+----------- 1 | %escapeme 3 | escape%esc (2 rows) Prefix search cqlsh:test> SELECT * FROM escape WHERE val LIKE 'escape%%'; id | val ----+----------- 2 | escape%me 3 | escape%esc Thanks, Mikhail > On 13 Sep 2016, at 18:16, DuyHai Doan <doanduy...@gmail.com> wrote: > > Use % to escape % > > cqlsh:test> select * from escape; > > id | val > ----+----------- > 1 | %escapeme > 2 | escape%me > > > Contains search > > cqlsh:test> SELECT * FROM escape WHERE val LIKE '%%esc%'; > > id | val > ----+----------- > 1 | %escapeme > > (1 rows) > > > Prefix search > > cqlsh:test> SELECT * FROM escape WHERE val LIKE 'escape%%'; > > id | val > ----+----------- > 2 | escape%me > > On Tue, Sep 13, 2016 at 5:06 PM, Mikhail Krupitskiy > <mikhail.krupits...@jetbrains.com <mailto:mikhail.krupits...@jetbrains.com>> > wrote: > Hi Cassandra guys, > > I use Cassandra 3.7 and wondering how to use ‘%’ as a simple char in a search > pattern. > Here is my test script: > > DROP keyspace if exists kmv; > CREATE keyspace if not exists kmv WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor':'1'} ; > USE kmv; > CREATE TABLE if not exists kmv (id int, c1 text, c2 text, PRIMARY KEY(id, > c1)); > CREATE CUSTOM INDEX ON kmv.kmv ( c2 ) USING > 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = { > 'analyzed' : 'true', > 'analyzer_class' : > 'org.apache.cassandra.index.sasi.analyzer.NonTokenizingAnalyzer', > 'case_sensitive' : 'false', > 'mode' : 'CONTAINS' > }; > > INSERT into kmv (id, c1, c2) values (1, 'f22', 'qwe%asd'); > INSERT into kmv (id, c1, c2) values (2, 'f22', '%asd'); > INSERT into kmv (id, c1, c2) values (3, 'f22', 'asd%'); > INSERT into kmv (id, c1, c2) values (4, 'f22', 'asd%1'); > INSERT into kmv (id, c1, c2) values (5, 'f22', 'qweasd'); > > SELECT c2 from kmv.kmv where c2 like ‘_pattern_'; > > _pattern_ '%%%' finds all columns that contain %. > How to find columns that start form ‘%’ or ‘%a’? > How to find columns that end with ‘%’? > What about more complex patterns: '%qwe%a%sd%’? How to differentiate ‘%’ char > form % as a command symbol? (Also there is a related issue CASSANDRA-12573). > > > Thanks, > Mikhail >