2016-02-03 5 views
0

Nous essayons d'extraire des données du noeud cassandra-solr avec des plages de dates en utilisant la requête solr.Recherche de plage à l'aide de solr_query sur le shell cql

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. 

En cas de DataStax Solr DSE Syntaxe de recherche pour plusieurs conditions/filtres de date ne sont pas disponibles

https://docs.datastax.com/en/datastax_enterprise/4.6/datastax_enterprise/srch/srchCql.html

Je ne pouvais pas trouver toute la documentation pour DataStax Solr pour les choses suivantes spécifiquement.

  1. 1) "fq" avec plusieurs paramètres 2) Syntaxe pour les plages de dates.
    3) formats de date & syntaxe pour spécifier les utiliser solr_query

S'il vous plaît laissez-moi savoir si je peux faire référence à une source autre que la documentation DataStax Solr pour la syntaxe & exemples pour la cuisson requête avec des paramètres

Pour trouver données entre deux dates.

requête équivalente de 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; 

S'il vous plaît aider. Merci Seck

Répondre

0

En termes de fq avec de multiples paramètres, la documentation officielle mentionne:

"fq": <filter query expression(s) (string or array of strings)>,

Au DSE 4.6.10, vous pouvez faire quelque chose comme:

"fq":["a:foo", "b:bar", "c:baz"]

Si vous travaillez avec des dates, je vous recommande de jeter un oeil à https://cwiki.apache.org/confluence/display/solr/Working+with+Dates. (Rappelez-vous qu'avec le format de requête DSE Search JSON, vous devrez peut-être faire s'échapper JSON en plus de votre caractère spécial Solr pour obtenir les résultats souhaités.)

0

En Solr, vous devez échapper des caractères spéciaux avec \ . Les caractères spéciaux comprennent +, -, & &, ||, (,), », ~, *, et:?.

Ainsi, votre requête CQL devrait être:

select * from tableName où solr_query = '{"q": "*: *", "fq": {date de début: [1987-19-09T11 \\: 14 \\: 00 \\ + 0000 À 2003-10-06T08 \\: 42 \ \: 00 \\ + 0000], "sort": "startdate desc"} limite 500;