1

我在我的网站上有一个 Zend Search (Lucene) 框架的实现,其中包含带有价格的产品索引。

我试图让客户搜索某些东西,同时限制价格。例如。在 5 美元到 10 美元之间搜索“狗粮”。

我的搜索索引如下所示:
Keyword('name')
Keyword('price')

假设数据库中有 2 个项目(名称和价格)
“狗粮”10
“点零食”11

如果我进行以下搜索,我会收到两个结果。
price[1 TO 15] name:dog
这正是我想要的。

但是,如果我将范围更改为 price[5 TO 15],我不会得到任何结果。谁能帮我理解如何调试这个?这种行为既发生在我的 Web 实现中,也发生在 Luke 中。

4

1 回答 1

2

这是交易:Lucene 中的这些值表示为字符串,并按字典顺序排序。因此,您需要用零填充它们。假设最高价格为 999 美元,您需要将每个价格插入为三位字符串:001、005、015 等。然后,您的查询将是:

price:[005 TO 015] name:dog

哪个应该工作。

于 2009-09-30T11:56:06.810 回答