实现涉及距离的更复杂的django搜索

时间:2014-08-13 18:27:26

标签: django

我试图实现以下搜索栏,其中括号中的每个条目都是一个可由用户填写的输入框。

[keyword] [number]英里[store-name]

此搜索使用户能够搜索与指定商店之间指定英里数的所有商店中与关键字匹配的商品。所有字段都是可选的 - 只有关键字单独搜索所有商店,只有商店名称搜索该商店内的所有商品,数字和商店名称搜索商店距离内的所有商品等。如果没有商店输入关键字+数字 - 名称,号码将被忽略。如果仅输入数字,它也将被忽略。

现在,我有以下距离模型。所有相关距离都已计算并存储在数据库中。

class Distance(models.Model):
    from_zip = models.CharField(max_length=5)
    to_zip = models.CharField(max_length=5)
    #distance from the from_zip to the to_zip
    distance_in_miles = models.DecimalField(max_digits=15, decimal_places=8)  

我还有另一个匹配zipcodes来存储名称的模型。

我查看了几个不同的python搜索包,例如django-ajax-search和django-watson,但不认为它们是我正在寻找的。两者都可以让我轻松实现对模型的搜索,但我不知道如何合并额外的两个搜索字段(距离,商店名称)。有没有人对我有任何关于如何推荐这个或推荐套餐的建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议使用带有elasticsearch的django haystack。它现在可能更有用,但从长远来看,它应该更具可扩展性和更快。

http://haystacksearch.org/ http://django-haystack.readthedocs.org/en/latest/spatial.html