我想讓我的DSE搜索查詢工作(使用Solr)。但是,在使用用戶定義類型(UDT)構建查詢時,我遇到了空白字符的問題。 例如:我有一個Student
表和Name
類型,其中Student
表有一個list<frozen<Name> names
。 Name
類型有說,firstname
和lastname
。如果我做下面的查詢時,它拋出一個錯誤:DSE搜索和Solr - UDT搜索查詢中的空白問題
Unable to execute CQL Script : no field name specified in query and no default specified via ‘df’ param.
SELECT * from Student where solr_query= '{!tuple}names.firstname:John Smith';
所以,我想逃避空白如下,它工作得很好。
SELECT * from Student where solr_query= '{!tuple}names.firstname:John\ Smith';
但是,當我用AND運算符使用上面的UDT字段時,它又失敗了。
SELECT * from Student where solr_query= 'student_id:123456 AND {!tuple}names.firstname:John\ Smith';
無法執行CQL腳本:org.apache.solr.search.SyntaxError:後:第1行,列...遇到無法解析names.firstname ...詞法錯誤「」
這是名字的字段類型:
<fieldType class="org.apache.solr.schema.TextField" name="DelimitedTextField">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern="[,\s]"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
作爲Solr的初學者,我一直在試圖讓這些查詢工作。任何幫助將深表感謝。謝謝!
謝謝亞歷山德羅,我想我遇到的問題可能是因爲我使用PatternTokenizer的方式。無論如何,我能解決它,我已經回答了這個問題。 – Amith