繁体   English   中英

在CQL Shell上使用Solr_query进行范围搜索

[英]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的任何文档,尤其是针对以下内容。

  1. 1)具有多个参数的“ fq” 2)日期范围的语法。
    3)使用solr_query指定日期格式和语法

请让我知道我是否可以参考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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM