【问题标题】:Object could not be found in database for SearchResult django haystack在 SearchResult django haystack 的数据库中找不到对象
【发布时间】:2014-06-27 12:58:06
【问题描述】:

我正在使用带有弹性搜索的 haystack。我使用rebuild_index 命令构建了索引数据。但是当我尝试搜索对象时,它给了我以下错误:

“在 SearchResult ' (pk=u'118')>' 的数据库中找不到对象。”

我已经仔细检查了数据库,没有记录被删除。但我仍然收到此错误。

有人可以帮忙吗?

谢谢。

【问题讨论】:

    标签: django elasticsearch full-text-search django-haystack


    【解决方案1】:

    对于来自网络搜索引擎的任何人,如果接受的答案对您不起作用,您也可以尝试重建索引:

    ./manage.py rebuild_index
    

    我收到与 OP 相同的错误消息,重建索引解决了我的问题。

    【讨论】:

      【解决方案2】:

      回答它以将其标记为已解决。

      这是数据库配置问题。我有不同环境的不同设置文件,并且两个文件中的数据库配置不匹配。

      【讨论】:

      • 检查您的数据库配置,也低于 Chris 的回答。
      • 感谢您的回复!最后我意识到原因是我的开发数据库的搜索索引转储与生产数据库的不兼容。我不应该将索引转储包含到 VCS。
      • 哦,好的,很高兴你知道了。
      【解决方案3】:

      看起来您正在以字符串而不是整数形式搜索 pk,不确定您的查询是什么样的。

      作为整数,定义pk_int时注意不要加引号:

      pk_int = 118 
      Model.objects.get(pk = pk_int)
      

      如果包含 pk 的变量已经是字符串,请使用 int():

      pk_string = '118'
      Model.objects.get(pk = int(pk_string))
      

      【讨论】:

        猜你喜欢
        • 2016-03-22
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-23
        相关资源
        最近更新 更多