1

私の solr サービスは HTTP 認証なしで動作しますが、私の Web ホストはそれを提供しており、それを利用したいと考えています。

solr サービスにアクセスするためのユーザー名とパスワードが dotcloud から URL の形式で与えられました。

「http://dotcloud:XXXXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com/solr/」

ブラウザでこのアドレスを指定すると、問題なく動作します。

私の settings.py ファイルには、次の行があります。

    HAYSTACK_SOLR_URL = 'http://dotcloud:XXXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com/solr/' 

しかし、./manage.py build_solr_schema を実行すると、次のエラーが発生します。

ValueError: 基数 10 の int() の無効なリテラル: 'XXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com'

URL を削除してもスキーマの構築に問題はありませんが、インデックスを構築できません ("Error 401: UNAUTHORIZED")。これは当然のことです。

認証について話している干し草の山ドキュメントには何も見つかりません。これは、settings.py に次のような数行を追加することで解決されるようです。

    HAYSTACK_SOLR_USER = 'dotcloud'
    HAYSTACK_SOLR_PSSWD = 'XXXXXXXXXXXXXXXXXXX'

しかし、サイコロはありません。Haystack 設定の完全なリストは、これらの行に沿って何も明らかにしません: http://docs.haystacksearch.org/dev/settings.html

何か案は??

ありがとう。

4

1 に答える 1

2

dotcloud で同じ問題に遭遇しました。エラーは実際には Haystack ではなく、pysolr にあります。Pysolr は、URL にコロンがある場合、それ以降はすべてポート番号でなければならないと想定します。

短期的な修正の 1 つは、dotcloud solr サービスで次の構成を使用して認証を無効にすることです。

構成: solr_authentication: false

私はこれを開発環境でのみ行い、そこに機密ではないデータがある場合にのみ行います(誰でもそのURLにアクセスできるため)。究極の解決策は、pysolr にパッチを適用することです。

于 2011-09-26T23:37:48.713 に答える