2

私はかなり長い間 Apache Solr を使用していましたが、最近になって深刻な問題が発生し始めました。haystack と django プロジェクトで使用しています。私がそれを行うとき、私manage.py shellは以下を取得しています:

>>> from haystack.query import SearchQuerySet
>>> emps = SearchQuerySet().filter(django_ct='web.employer').filter(name__icontains='Mi')[:10]
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/haystack/query.py", line 241, in __getitem__
    self._fill_cache(start, bound)
  File "/usr/local/lib/python2.7/dist-packages/haystack/query.py", line 140, in _fill_cache
    results = self.query.get_results(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/haystack/backends/__init__.py", line 469, in get_results
    self.run(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/haystack/backends/solr_backend.py", line 501, in run
    results = self.backend.search(final_query, **search_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/haystack/backends/__init__.py", line 47, in wrapper
    return func(obj, query_string, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/haystack/backends/solr_backend.py", line 202, in search
    raw_results = self.conn.search(query_string, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pysolr.py", line 578, in search
    response = self._select(params)
  File "/usr/local/lib/python2.7/dist-packages/pysolr.py", line 308, in _select
    return self._send_request('get', path)
  File "/usr/local/lib/python2.7/dist-packages/pysolr.py", line 293, in _send_request
    error_message = self._extract_error(resp)
  File "/usr/local/lib/python2.7/dist-packages/pysolr.py", line 372, in _extract_error
    reason, full_html = self._scrape_response(resp.headers, resp.content)
  File "/usr/local/lib/python2.7/dist-packages/pysolr.py", line 404, in _scrape_response
    p_nodes = body_node.cssselect('p')
AttributeError: 'NoneType' object has no attribute 'cssselect'

haystack、lxml、cssselect、pysolr を再インストールしようとしましたが、それでもこれらのエラーが発生します。これについて他に試すことができることはありますか?助けてくれてありがとう!

また、これを含む他のSOの質問をいくつか読んでみました:

XML エラー オブジェクトに属性「cssselect」がありません

4

3 に答える 3

4

問題はpysolrにあるようです。ここでヘルプが見つかるかもしれません。

于 2013-08-26T21:00:17.457 に答える
1

pysolr と lxml を最新バージョンにした後でも、同じ問題が解決しませんでした。デフォルトのsolrのものと比較していくつかの追加フィールドを持つ干し草スタック生成スキーマを使用していなかったことが判明しました。

これが事実であるかどうかは、solr ログを調べることで確認できます。

于 2014-11-13T00:37:13.447 に答える
1

これは pysolr の問題です。3.3.0 まで修正されていません。

唯一の代替手段は、pysolr コードをオーバーライドして、Solr が応答ステータス!=200 を返すタイミングを調整することです。

レスポンスに body 属性があるかどうかを確認し、それに応じて調整できます。

于 2015-02-11T06:57:44.343 に答える