2010-11-19 6 views
0

Ich benutze Zend Lucene, um eine Suchfunktion für meine Website zu erstellen. Alles gut und gut.Zend Lucene Lexicographic Range Suche zurückkehrende nicht relevante Ergebnisse

dem Verständnis, dass Lucene sucht lexikographisch funktioniert (zB
1,
110,
1.111.444,
2,
3,
4,
499238492834798,
5,
etc)

Ich habe meine Nummern auf 3 Ziffern aufgefüllt (von 010 bis 990).

Wenn ich nach den Werten 110 bis 160 suche (z. B. Feldname: [110 TO 160]), werden die Ergebnisse für 040 zurückgegeben! Logisch ist das falsch, da alle Zahlen mit einer 1 beginnen würden (obwohl es immer noch nach 11, 12, 13, 14, 15 und 16 suchen würde), so dass es nicht mit diesem Ergebnis übereinstimmen sollte!

Warum passiert das und wie kann ich damit aufhören?

[bearbeiten] Ich habe die Zend-Dokumentation falsch gelesen. Die Bereichsabfrage, die Ergebnisse sortiert, lexikografisch. Aber mein Problem besteht weiter.

Antwort

1

Ich bin nicht in der Lage, um herauszufinden, warum dies wie diese wirkt, so mache ich eine Schleife:

for ($i = 0; $i < 50; $i + 10) 
{ 
$queryString .= 'fieldname:' . ($term + $i) . ' '; 
} 

erstellt eine Abfrage wie:

fieldname:110 fieldname:120 fieldname:130 fieldname:140 fieldname:150 fieldname:160 

, die die Ergebnisse zurückgibt Ich will genau.