我们正尝试使用solr查询从cassandra-solr节点提取日期范围的数据。
e.g.
SELECT * FROM keyspace_name.table_name where solr_query='{"q":"<col1>:*",,"sort":"col1 asc"}';
I could find syntax for apache solr documentation to perform range search & examples too.
如果是Datastax Solr,则无法使用多个条件/日期过滤器的DSE搜索语法
https://docs.datastax.com/en/datastax_enterprise/4.6/datastax_enterprise/srch/srchCql.html
我找不到Datastax Solr的任何文档,专门用于跟踪。
如果我可以参考除Datastax Solr文档之外的任何来源,请告知我们语法和&amp;使用参数
触发查询的示例查找两个日期之间的数据。
等效的cql查询:
select * from tableName where startdate >= '1987-19-09 11:14:00+0000' AND startdate < '2003-10-06 08:42:00+0000' limit 500 allow filtering;
请帮忙。 谢谢 SAURABH
答案 0 :(得分:0)
对于具有多个参数的fq
,官方文档提到:
"fq": <filter query expression(s) (string or array of strings)>,
从DSE 4.6.10开始,您可以执行以下操作:
"fq":["a:foo", "b:bar", "c:baz"]
如果您正在使用日期,我建议您查看https://cwiki.apache.org/confluence/display/solr/Working+with+Dates。 (请记住,使用DSE Search JSON查询格式,您可能必须在转发Solr特殊字符之前进行一些JSON转义,以获得所需的结果。)
答案 1 :(得分:0)
在Solr中,您需要使用\来转义特殊字符。特殊字符包括+, - ,&amp;&amp;,||,!,(,),“,〜,* ,?和:。
所以你的cql查询应该是:
从tableName中选择*其中solr_query ='{“q”:“*:*”,“fq”:{startdate:[1987-19-09T11 \\:14 \\:00 \\ + 0000 TO 2003- 10-06T08 \\:42 \\:00 \\ + 0000],“sort”:“startdate desc”}限制500;