Zend Lucene Aralığı ara düzgün çalışıyor olsun (ya da bana hata ayıklama yardım) nasıl

1 Cevap php

Ben fiyatlarla ürün bir dizin içeren web siteme Zend Arama (Lucene) çerçevesinde bir uygulama var.

Fiyatları contsraining ederken, müşteriler bir şey aramak için izin vermek için çalışıyorum. Örn. $ 10 dolar - $ 5 arasında "köpek maması" için arama.

My search index looks like this:
Keyword('name')
Keyword('price')

Lets say there's 2 items in the database (name and price)
'dog food' 10
'dot treats' 11

If I do the following search, I receive both results.
price[1 TO 15] name:dog
This is exactly what I want.

I [15 TO 5] fiyat için aralığını değiştirirseniz Ancak, geriye hiçbir sonuç almak. Herkes bana bu hata ayıklamak için nasıl anlamanıza yardımcı olabilir? Bu davranış benim web uygulamasında, ve Luke hem de oluşur.

1 Cevap

Here's the deal: These values in Lucene are represented as strings, and are sorted lexicographically. Therefore, you need to pad them with zeros. Say the maximal price is 999 dollars, you need to insert each price as a three-digit string: 001, 005, 015 etc. Then, your query will be:

price:[005 TO 015] name:dog

Hangi çalışması gerekir.