2013-10-10 14 views
7

i gesucht werden soll Daten von solr wie die Suche unterWie mit Datum mit Apache Solr

enter image description here diese meine beiden Tabellen ist:

enter image description here

enter image description here

So wie kann ich Suche dieses Datum unter Verwendung von solr ....

E dit

Ich verwende dafür SolrPhpClient.

Dies ist Felder aus meiner schema.xml:

<fields> 
    <field name="id" type="string" indexed="true" stored="true" required="true"/> 
    <field name="event_name" type="text_general" indexed="true" stored="true"/> 
    <field name="event_category_id" type="string" indexed="true" stored="true"/> 
    <field name="cat_name" type="text_general" indexed="true" stored="true"/> 
    <field name="event_sub_category_id" type="string" indexed="true" stored="true"/> 
    <field name="sub_cat_name" type="text_general" indexed="true" stored="true"/> 
    <field name="event_location" type="text_general" indexed="true" stored="true"/> 
    <field name="org_id" type="string" indexed="false" stored="true"/> 
    <field name="org_name" type="text_general" indexed="true" stored="true"/> 
    <field name="event_city" type="text_general" indexed="true" stored="true"/> 

    <field name="multiple_tags" type="text_general" indexed="true" stored="true" multiValued="true" /> 

    <field name="multiple_start_dates" type="date" indexed="true" stored="true" multiValued="true" /> 

    <field name="event_twitter_url" type="text_general" indexed="false" stored="true"/> 
    <field name="event_fb_url" type="text_general" indexed="false" stored="true"/> 
    <field name="search_text" type="text_general" indexed="true" stored="false" multiValued="true" /> 
    <copyField source="event_name" dest="search_text" /> 
    <copyField source="cat_name" dest="search_text" /> 
    <copyField source="org_name" dest="search_text" /> 

    <copyField source="multiple_tags" dest="search_text" /> 

    <dynamicField name="*" type="string" multiValued="true" indexed="true" stored="true" /> 
    <field name="_version_" type="long" indexed="true" stored="true"/> 
    <field name="content" type="text_general" indexed="false" stored="true" multiValued="true"/> 
    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/> 
</fields> 

Das folgende Bild ist die solr Admin bei allen Rückfragen:

enter image description here

Also, wenn ich multiple_start_dates:2013-10-24T00:00:00Z in q suchen kehrt invalid date string Fehler ......

+0

Fragen, die nach Code fragen, müssen ein minimales Verständnis des zu lösenden Problems demonstrieren. Fügen Sie Lösungsversuche ein, warum sie nicht funktionierten und die erwarteten Ergebnisse. – Kermit

Antwort

3

von Schema scheint es, dass Sie d nicht indiziert haben aßen Felder aus Tabellen, wenn Sie Index Datumsfelder wie erstellt und geändert Spalten, Sie Abfragen wie diese machen können:

(created:[NOW-1MONTH TO NOW]) //for current month 

(created:[NOW-3MONTH TO NOW-1MONTH]) //created within last three months but not in current month 

und so weiter, einiges Experiment mit anderen Zeiteinheiten und (+/-) Betreiber , erhalten Sie gewünschte Abfragen.

+0

siehe meine Bearbeitungen ..... – Kichu

+0

, ich fügte hinzu und indexierte Daten, die erfolgreich abgeschlossen wurde, aber Suche Fehler – Kichu

+0

Die Abfrage, die Sie machen, ist keine Bereichsabfrage, versuchen Sie, den Wert des Eingabedatums in Anführungszeichen setzen. – sumit