2017-08-04 11 views
0

Wir verwenden Solr unter Windows mit mehreren Sammlungen. Sammlungen haben mehrere gespeicherte und indizierte Felder mit ca. 200.000 Dokumenten. Der Anwendungsfall ist für die Suche nach E-Commerce-Websites. Die Größe des Index ist appx. 200 MBLeistung der langsamen Solr-Abfrage verbessern

Während die normale Suche weniger als wenige ms dauert, dauert die Abfrage, bei der ich alle Daten für mehrere Kategorien finden muss, etwa 1100ms bis 1200ms. Die Abfrage enthält appx. 400 Kategorien mit oder so ähnlich ..

Kategorie: (5 oder 33 oder 312 oder 1192 OR 1193 OR 1196 OR .....)

Ich habe zu 4 GB erhöht Heap-Größe und Solr Cache Wert konfigurierte um auf eine höhere Größe zu kommen, hat dies die Abfragezeit von 2000ms auf 1100ms reduziert, aber wir suchen nach mehr Verbesserung.

Ich fand auch folgende auf Solr UI: [email protected]; maxCacheMB = 48.0 maxMergeSizeMB = 4.0

Aber nicht sicher, hat das Auswirkungen? Und wenn ja, wie ändert man das? Können Sie uns beraten, was wir sonst noch tun können? Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Vielen Dank im Voraus.

Antwort

2

sollten Sie Ihre vollständige Anfrage hinzufügen, damit es einfacher ist, einen Rat zu geben. Aber, von Ihrem Satz "Die Abfrage enthält appx. 400 Kategorien mit OR etwas wie .." Ich verstehe, dass Sie Ihre riesige Klausel in q Param setzen? Das ist nicht der richtige Ansatz.

Verwenden Sie stattdessen q = *: * und setzen Sie Ihre Klausel in fq. Auf diese Weise wird es zwischengespeichert und nachfolgende Abfragen werden viel schneller sein. Wenn Sie eine gute Cache-Trefferrate erzielen, werden Abfragen wesentlich schneller.

Als zweite Sache, die Sie versuchen könnten (aber zuerst mit dem oben gehen) könnte die große OR-Klausel in eine (oder eine Kombination aus) reichen Klauseln Umwandlung, wie:

Category:[5 TO 1190] OR Category:[1192 TO 1196] 

Wenn Ihr Typ ist eine Tönung, und Sie können die Klausel in Bereiche Kombination verwandeln, indem Sie deutlich ihre Größe verringern, könnte es auch funktionieren

+0

Vielen Dank für Ihren Vorschlag, ich werde versuchen, dies in fq anstelle von q param. Vielen Dank. – Krunal

+0

Hallo, Das hat perfekt funktioniert, als Sie mein Problem beschrieben und gelöst haben. Vielen Dank – Krunal

Verwandte Themen