WSLからcURLコマンドを実行すると、エラーは表示されないがドキュメントも登録されていない
ドキュメントのセマンティック検索の章を参考に、セマンティック検索を試しています。
拡張機能からダウンロードしたセマンティック検索バージョンのライブドアニュースのコンフィグでコレクションを作成しました。
拡張機能からベクトル情報付きのデータをダウンロードし、そのコレクションに、WindowsのWSLからcURLコマンドでインデクシングしたのですが、検索画面で検索しても何も表示されません。
cURLコマンドはすぐに終わり、エラーのようなものは何も表示されません。
実行したcURLコマンドは次のようなものです。
curl -X POST 'https://<xxxx>.c.kandasearch.com/solr/semantictest/update?commit=true&indent=true' --data-binary @livedoor_embeddings.json -H 'Content-Type: text/json'
zhaoさん
ありがとうございます。
以下のような結果になります。
curl -v -X POST 'https://xxxx.c.kandasearch.com/solr/ldn-emb/update?commit=true&indent=true' --data-binary @livedoor_embeddings.json -H 'Content-Type: text/json'
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying xx.xx.xx.xx:443...
* Connected to xxxx.c.kandasearch.com (xx.xx.xx.xx) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS header, Finished (20):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=c.kandasearch.com
* start date: Feb 24 00:00:00 2024 GMT
* expire date: Mar 24 23:59:59 2025 GMT
* subjectAltName: host "xxxx.c.kandasearch.com" matched cert's "*.c.kandasearch.com"
* issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M02
* SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* Using Stream ID: 1 (easy handle 0x563cc1782eb0)
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
> POST /solr/semantictest/update?commit=true&indent=true HTTP/2
> Host: xxxx.c.kandasearch.com
> user-agent: curl/7.81.0
> accept: */*
> content-type: text/json
> content-length: 152475901
>
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
< HTTP/2 404
< server: awselb/2.0
< date: Wed, 12 Jun 2024 09:54:09 GMT
< content-type: text/plain; charset=utf-8
< content-length: 0
* HTTP error before end of send, stop sending
<
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* Connection #0 to host xxxx.c.kandasearch.com left intact
kojisaysさん、返信ありがとうございます。
KandaSearchのPMさんからお返事いただけるとは恐縮です。(^^;)
curl -f を実行したところ以下のように返ってきました。
curl: (22) The requested URL returned error: 404
404エラーが起きているようです。
そこで、URLのホスト名 xxxx(実際にはxxxxではないですが)を少し変えて実行したところ、以下のように返ってきました。
curl: (6) Could not resolve host: yyyy....
ということは、URLのホスト名の部分はあっているようです。
あらためて管理画面のインスタンスの設定を確認したところ、許可IPアドレスが登録されていたのですが、そのIPは私が普段使用しているVPN接続作業時のもので、この問題が起きたときに使用していたIPではありませんでした。
通常、会社からインターネットに出るときは、一般のプロバイダーを使っていて固定IPではないです。特別な作業をするときにはVPN接続サービスを使って固定IPになるようにしているのですが、インスタンス作成時に指定した許可IPがVPN用であったことを失念していました。
管理画面は会社のプロバイダのIPからでもアクセスできていたので、許可IPが設定できているものと勘違いしていました。(管理画面はどのIPからもアクセスできるのでした)
というわけで、VPN接続を行ってからcurlを実行したところ、次のような表示が返ってきて、検索画面からセマンティック検索ができました。
確かに、キーワードが直接ヒットしなくても期待する検索結果が表示されるのはすごいなと思いました。
jsonファイルは150MBくらいあり、7千件強のインデクシングに80秒くらいかかりました。
{
"responseHeader":{
"status":0,
"QTime":80029
}
}
kojisaysさん、zhaoさん、サポートありがとうございました。
トピックへ返信するには、ログインが必要です。