Puis-je limiter la recherche à une plage de dates?

voix
0

Je veux obtenir tous les résultats après une date donnée, pouvez-vous faire avec solr?

( Http://lucene.apache.org/solr/ )

En ce moment, les résultats sont recherche l'ensemble des résultats, je veux filtrer quoi que ce soit après une date donnée.

Mise à jour Ce ne fonctionne pas pour moi encore.

Mon retour doc:

en essayant:

http://www.example.com:8085/solr/select/?q=test&version=2.2&start=0&rows=10&indent=on&indexed_at:2009-08-27T13%3A15%3A27.73Z

<doc>
<str name=apptype>Forum</str>
<str name=collapse>forum:334</str>
<str name=content> testing </str>
<str name=contentid>357</str>
<str name=createdby>some_user</str>
<str name=date>20090819</str>
<str name=dummy_id>1</str>
<int name=group>5</int>
<date name=indexed_at>2009-08-25T16:48:45.121Z</date>
<str name=rating>000.0</str>
<str name=rawcontent><p>testing</p></str>
<arr name=roles>
<str>1</str>
<str>2</str>
<str>3</str>
<str>4</str>
<str>14</str>
<str>15</str>
<str>16</str>
</arr>
<int name=section>79</int>
<int name=thread>334</int>
<str name=title>testing</str>
<str name=titlesort>testing</str>
<str name=type>forum</str>
<str name=unique_id>
BLAHBLAH|357
</str>
<str name=url>/blahey/f/79/p/334/357.aspx#357</str>
<str name=user>21625</str>
<str name=username>some_user</str>
</doc>
Créé 27/08/2009 à 00:04
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
4

Oui, vous pouvez, je suppose que vous avez un champ avec la valeur de date que vous souhaitez filtrer. Ensuite, vous faites

yourdatefield:[2008-08-27T23:59:59.999Z TO *] 

serait localhost un exemple d' URL: 8983 / Solr / sélectionner q = yourdatefield:? [2008-08-27T23:59:59.999Z TO *]

vous voulez soumettre la partie date comme une requête si la valeur de q comme

localhost:8983/solr/select/q=(text:test+AND+indexed_at:`[2009-08-27T13:A15:A27.73Z TO *`])

Donc, toute requête est contenu dans le q querystring paramter.

le format de la date est certifiée ISO 8601.

Créé 27/08/2009 à 00:16
source utilisateur

voix
2

Vous pouvez ajouter un horodatage automatique aux documents car ils sont indexés en utilisant:

<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>

dans le schema.xml. Le schéma par défaut a commenté ce donc si vous avez copié la valeur par défaut, il vous suffit de décommenter.

Vous pouvez ajouter cela et utiliser le modèle de recherche suggéré Olle pour trouver les documents indexés après une certaine date. (Il faudrait mettre à jour yourdatefield avec horodatage ou tout ce que vous nommez le champ dans le fichier XML.

Créé 27/08/2009 à 00:34
source utilisateur

voix
0

Vous devez créer une requête qui compare les dates, voici la syntaxe des requêtes: http://wiki.apache.org/solr/SolrQuerySyntax

Et voici comment vous pouvez faire des comparaisons de date dans la requête: http://lucene.apache.org/solr/api/org/apache/solr/util/DateMathParser.html

Créé 27/08/2009 à 00:22
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more