2016-10-24 21 views
0

我有卡桑德拉表如下數據:DSE卡桑德拉SOLR查詢與空格

cqlsh:test> SELECT * FROM test1 WHERE solr_query='{"q":"address:*"}'; 

name | address      | age | solr_query 
-------+------------------------------+-----+------------ 
test3 |   road3 united states | 23 |  null 
test4 |    road 123 canada | 23 |  null 
test2 |  street2 united states | 22 |  null 
test1 | 123 california united states | 21 |  null 
test5 |  123 Texas united states | 23 |  null 

與架構:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<schema name="TestSolrSchema" version="1.5"> 
<types> 
<fieldType class="org.apache.solr.schema.StrField" name="StrField"/> 
<fieldType class="org.apache.solr.schema.TrieIntField" name="TrieIntField"/> 
</types> 
<fields> 
<field docValues="true" indexed="true" multiValued="false" name="name" stored="true" type="StrField"/> 
<field docValues="true" indexed="true" multiValued="false" name="address" stored="true" type="StrField"/> 
<field docValues="true" indexed="true" multiValued="false" name="age" stored="true" type="TrieIntField"/> 
</fields> 
<uniqueKey>name</uniqueKey> 
</schema> 

與空間字符串的完美搭配工作 cqlsh:測試> SELECT * FROM test1 WHERE solr_query ='{「q」:「address:\」123 california united states \「」}';

name | address      | age | solr_query 
-------+------------------------------+-----+------------ 
test1 | 123 california united states | 21 |  null 

但是,如果我想搜索以「123」開始的字符串(帶空格的字符串的正則表達式),它會失敗。 (試過其他solr query: {"q":"address:\"123\"*"})

cqlsh:test> SELECT * FROM test1 WHERE solr_query='{"q":"address:\"123\""}'; 

name | address | age | solr_query 
------+---------+-----+------------ 

(0 rows) 

有沒有辦法讓正則表達式的Solr的字符串字段類型來完成與空間?

+0

如果你不介意我問,你是怎麼用Solr和Cassandra正確集成的,到目前爲止還找不到有用的教程。 – trynacode

回答

0

嘗試SELECT * FROM test1 WHERE solr_query='{"q":"address:123*"}';您刪除引號,你不再需要精確匹配。