るりまサーチのAPIの返すURLがおかしい?
Opened this issue · 3 comments
るりまサーチのAPIを試していたのですが、返してくるURLがおかしいようです。
次のようにcurlとjqをつかってURLを取り出してみると、
https://docs.ruby-lang.org/ja/search/
の後に、本来の検索結果のURLがついてきているようにみえます。また、検索結果のURLのスキーマがhttpsではなくhttpになっているので、httpsの方がより良さそうです。$ curl -s 'https://docs.ruby-lang.org/ja/search/api:v1/query:open/' | jq '.entries[0].documents[0].url' "https://docs.ruby-lang.org/ja/search/http://docs.ruby-lang.org/ja/2.3.0/library/open=2duri.html"期待するURL: https://docs.ruby-lang.org/ja/2.3.0/library/open=2duri.html
実際のURL: https://docs.ruby-lang.org/ja/search/http://docs.ruby-lang.org/ja/2.3.0/library/open=2duri.html
From clear-code/rurema-search#29
上のIssueをclear-code/rurema-searchに開いたところ、アプリケーションコードよりもデプロイの仕方に原因がありそうとコメントをもらったのでこちらにIssueをオープンします。
上のIssueを作った後にコードを眺めていたところ、このリポジトリの次のコードの当たりでオプションを設定しているようでした。
ここで設定したbase_urlオプションが、APIが返すURLに関わってくるので、この設定が原因で意図しない表示になっていると思います。
遅くなりましたが、 base_url
が http://docs.ruby-lang.org/ja/
になっていたのを https://docs.ruby-lang.org/ja/
に修正しました。
backend の rurema-search の URL がくっついてしまう方については、
https://github.com/clear-code/rurema-search/blob/2697320aa5044b6dd5d0e2b35ababbd735a0291b/lib/rurema_search/groonga_searcher.rb#L221-L223
の full_url
で追加しているようで、設定ではなおらなさそうでした。
たとえば base_url
の設定をパスのみの /ja/
に変更しても rurema-search のホストとポートになってしまってうまくいかなさそうでした。
https://github.com/clear-code/rurema-search/blob/2697320aa5044b6dd5d0e2b35ababbd735a0291b/lib/rurema_search/groonga_searcher.rb#L125 で@request.url
を使っているのをX-Forwareded-XXX
があったらそいつらを優先するようにすればいいという感じですか?
https://github.com/clear-code/rurema-search/blob/2697320aa5044b6dd5d0e2b35ababbd735a0291b/lib/rurema_search/groonga_searcher.rb#L125 で
@request.url
を使っているのをX-Forwareded-XXX
があったらそいつらを優先するようにすればいいという感じですか?
その対応が入って base_url
も /ja/
のみに変更すれば、うまくいきそうです。