[英]Range search using solr_query on cql shell
我们正在尝试使用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/zh-CN/datastax_enterprise/4.6/datastax_enterprise/srch/srchCql.html
我找不到有关Datastax Solr的任何文档,尤其是针对以下内容。
请让我知道我是否可以参考Datastax Solr文档以外的任何来源获取语法和使用参数触发查询的示例
查找两个日期之间的数据。
等效的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;
请帮忙。 谢谢索拉卜
对于具有多个参数的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搜索JSON查询格式,您可能必须在转义Solr特殊字符的基础上进行一些JSON转义,以获得所需的结果。)
在Solr中,您需要使用\\转义特殊字符。 特殊字符包括+,-,&&,||,!,(,),“,〜,* 、?和:。
因此,您的cql查询应为:
从tableName中选择*,其中solr_query ='{“ q”:“ *:*”,“ fq”:{开始日期:[1987-19-09T11 \\\\:14 \\\\:00 \\\\ + 0000 TO 2003-10-06T08 \\\\:42 \\\\:00 \\\\ + 0000],“ sort”:“ startdate desc”}限制500;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.