标签: django-haystack

Django Haystack - 如何通过时间戳订购?

我是Django和Haystack的新手......我需要知道如何按日期/时间戳排序我的搜索结果,最近一次.

这是我的model.py:

class adsText(models.Model):
    hash          = models.TextField(primary_key=True)
    title         = models.TextField()
    description   = models.TextField()
    country       = models.TextField()
    zone          = models.TextField()
    location      = models.TextField()
    date_inserted = models.DateTimeField()
    class Meta:
        db_table = u'ads_text'
        managed = False

    def __unicode__(self):
        return self.title
Run Code Online (Sandbox Code Playgroud)

我的search_indexes.py:

class adsTextIndex(indexes.SearchIndex):
    text            = indexes.CharField(document=True, use_template=True)
    title           = indexes.CharField(model_attr='title')
    description     = indexes.CharField(model_attr='description')
    zone            = indexes.CharField(model_attr='zone')
    location        = indexes.CharField(model_attr='location')
    date_inserted   = indexes.DateTimeField(model_attr='date_inserted')

    def index_queryset(self):
        """Used when the entire index for model is updated."""
        return adsText.objects.order_by('-date_inserted')
        #return adsText.objects.filter(date_inserted__lte=datetime.datetime.now())

site.register(adsText, adsTextIndex)
Run Code Online (Sandbox Code Playgroud)

我的urls.py:

urlpatterns = patterns('', …
Run Code Online (Sandbox Code Playgroud)

django-haystack

1
推荐指数
1
解决办法
3079
查看次数

如何从Haystack SearchQuerySet中删除项目

在Django中,你可以通过这样的记录删除一个QuerySet项目在这里

queryset = QuerySet.remove(item)
Run Code Online (Sandbox Code Playgroud)

Haystack SearchQuerySet建立在QuerySet上,但似乎未实现remove方法。有谁知道一种删除SearchQuerySet中项目的方法?

FWIW我正在尝试对客户端进行第二级过滤。基本上,我正在遍历SearchQuerySet的几个特定属性。这个想法是,如果他们没有,我想删除它们。

谢谢

django django-queryset django-haystack

1
推荐指数
1
解决办法
1697
查看次数

从概念的角度来看,Django Haystack document=True

所以,我试图围绕“ text = indexes.CharField(document=True, use_template=True)”的概念进行思考。从文档:

每个 SearchIndex 都要求有一个(并且只有一个)文档=True 的字段。这向 Haystack 和搜索引擎表明哪个字段是在其中进行搜索的主要字段。

既然我看到的每个例子似乎都把这个“扔进去”作为惯例,那么“ text = indexes.CharField(document=True, use_template=True)”究竟是如何描述任何东西的?

  1. 使用此约定时,引擎选择主要搜索模型中的哪个字段?

  2. model_attr=desired_model_attr这个text字段不应该总是有a ,所以引擎实际上可以知道哪个model_attr是搜索的主要字段?

django django-haystack

1
推荐指数
1
解决办法
563
查看次数

如何通过相关模型过滤Haystack SearchQuerySets

如何通过相关模型字段过滤/加入Haystack SearchQuerySet?

我有一个查询:

sqs = SearchQuerySet().models(models.Person)
Run Code Online (Sandbox Code Playgroud)

这将返回与等效管理页面返回的结果相同的结果.

但是,如果我尝试按外键链接的模型记录进行过滤:

sqs = sqs.filter(workplace__role__name='teacher')
Run Code Online (Sandbox Code Playgroud)

即使页面/admin/myapp/person/?workplace__role__name=teacher返回多条记录,它也不会返回任何内容.

我不想对这些相关模型进行任何全文搜索.我只想做一个简单的完全匹配过滤器.干草堆有可能吗?

python django django-haystack

1
推荐指数
1
解决办法
1925
查看次数

Django haystack +嗖的错误

我正试图在我的django应用程序中进行搜索,然后我使用干草堆嗖的一声, 但我遇到了一些麻烦.首先,当我尝试rebuild_index或update_index它给我这个错误时,下面也是第二个是当我输入并搜索它给了我0结果.所以我只是想如果这个rebuild_index修复了搜索问题就会解决.请任何人帮助我

错误:

/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField Subtitle.pub_date received a naive datetime (2014-03-27 16:36:44.341555) while time zone support is active.
  RuntimeWarning)

Indexing 14 Subtitles
ERROR:root:Error updating sub using default 
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 221, in handle_label
    self.update_backend(label, using)
  File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 267, in update_backend
    do_update(backend, index, qs, start, end, total, self.verbosity)
  File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 89, in do_update
    backend.update(index, current_qs)
  File "/usr/local/lib/python2.7/dist-packages/haystack/backends/whoosh_backend.py", line 179, in update
    doc = index.full_prepare(obj)
  File "/usr/local/lib/python2.7/dist-packages/haystack/indexes.py", line 204, …
Run Code Online (Sandbox Code Playgroud)

python django whoosh django-haystack

1
推荐指数
1
解决办法
1641
查看次数

将 Django 部署为独立的内部应用程序?

我正在使用 Django 开发一个工具,供我的组织内部使用。它用于搜索和标记文档(使用 Haystack 和 Solr),并将用于不同的项目。我的团队目前有一个工作原型,我们希望“在野外”部署它。

我们的安全环境很严格。项目文档位于网络驱动器上的子文件夹中,并且根据用户的 Windows 凭据限制对这些文件夹的访问(我们还有一个使用相同凭据的 MS SQL 服务器)。一个用户只能访问自己参与的项目。由于我们是微软的专卖店,如果我们想在公司内网部署我们的应用程序,我们需要使用一个IIS服务器来处理这些权限。团队中没有人具备使用 IIS、Active Directory 所需的知识,而且我们的 IT 部门已经人满为患。简而言之,我们不是网络开发人员,我们无法立即接触到任何有经验的人。

我的 hacky 解决方案是完全放弃 IIS,让每个最终用户在本地运行一个轻量级服务器(即 CherryPy),同时每个用户都保留对公共项目特定数据库的访问权限(例如,位于网络驱动器上的 SQLite DB 或 MS 上的 DB SQL 服务器)。为了使用该工具,他们只需启动一个多合一的批处理脚本并将浏览器指向127.0.0.1:8000. 我知道这有多丑陋,但我觉得它利用了已经到位的安全措施(请注意,在给定的项目中永远不要期望超过 10 个同时用户)。这是一个糟糕的主意吗,如果是这样,什么是更好的解决方案?

iis django wsgi cherrypy django-haystack

1
推荐指数
1
解决办法
842
查看次数

django-haystack:如何访问模板上的拼写建议?

我正在和Solr一起尝试django-haystack HAYSTACK_INCLUDE_SPELLING = True.

如何访问模板上的拼写建议(由默认生成SearchView)?

编辑:另一个问题:拼写建议可以从数据库中找到单词吗?例如,使用Notehaystack doc中的默认模型和默认模式SearchView,当我在数据库中包含一个名为"Lorem ipsum"的注释时搜索单词"Lorm"时,没有拼写建议.这是正常的吗?

谢谢 :-)

python django solr django-haystack

0
推荐指数
1
解决办法
3252
查看次数

Whoosh在heroku上返回空结果

我正在使用Haystack + Whoosh在我的django项目中构建搜索功能.在localhost上搜索工作正常并返回结果.虽然我有时注意到它在过滤时返回了一些"未找到对象"的索引.但这不是我的主要问题.主要问题是我尝试在heroku上部署我的应用程序.只有在创建数据库并且第二天检查结果总是为空时,搜索才可以.我尝试了"rebuild_index"和"update_index"命令,但没有希望.我不得不放弃数据库并重新同步它以使其工作一段时间再停止工作

什么想法会导致这个问题?

django heroku whoosh django-haystack

0
推荐指数
1
解决办法
642
查看次数

Haystack __包含没有找到通过GET传递的子串[ElasticSearch backeng]

我有以下型号:

class ProductIndex(CelerySearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    number = indexes.CharField()
    description = indexes.CharField(model_attr='description')
Run Code Online (Sandbox Code Playgroud)

在我的网页中,我对一个函数执行一个AJAX调用,该函数应该返回给我的产品,这些产品的描述包含一些使用过的类型的单词.例如,如果我的产品的描述为"Apple Macbook Pro",并且用户输入"book",我想返回该结果.

我执行以下操作:

q = request.GET['q']
results = SearchQuerySet().models(Product).filter(description__contains=q)
Run Code Online (Sandbox Code Playgroud)

但是,就像我说的那样,我确实有一个产品描述:

Macbook和用户类型book,它将无法正常工作.但是,Macbook会奏效.

最后,如果我打印q,它会返回u'book'.

django django-haystack elasticsearch

0
推荐指数
1
解决办法
616
查看次数

Django Haystack 搜索 Django 模型 PK

是否有一个简单的钩子可以通过 Django 模型 PK 查找 Haystack 结果?类似的东西(这不起作用)

   SearchQuerySet().filter(pk=12)
Run Code Online (Sandbox Code Playgroud)

另一种方法是,我将显式字段添加到模型 pk 的 SearchIndex 中,但这似乎很浪费,因为 Haystack 的查询集结果包含底层 django 模型 pk

django django-haystack

0
推荐指数
1
解决办法
656
查看次数

django - 为房地产项目建立过滤器

为了练习我学到的东西,我开始了一个关于房地产网站的django项目.

下一步是构建搜索页面,用户可以选择multiple filters,对于为例,number of rooms,baths,area,city...

在我读的书中,我使用了搜索引擎(带有django haystack的Sorl),所以我想知道是否应该使用它来过滤数据库上的用户条件,或者我是否应该只使用djando查询来保持简单ifs.

你有什么建议我的?

django django-queryset django-haystack

0
推荐指数
1
解决办法
188
查看次数

Django-haystack 2.6.1与Django 2.0兼容吗?

我的问题很简单(按标题)。当前的Django干草堆是否与最新的Django 2.0兼容?有人使用这种组合吗?

文档和PYPI中的要求表明:

但是以下用户在尝试将其与Django 2.0一起使用时也遇到了同样的问题:

相同的设置适用于Django 1.11。

谢谢!

python django django-haystack python-3.x django-2.0

0
推荐指数
1
解决办法
564
查看次数