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'
過去の類似のお問い合わせ
- 自社ウェブサイトのページを対象にしたセマンティック検索システムを作りたい
こんにちは。
KandaSearchを使って、自社ウェブサイトの全ページを対象にセマンティック検索を行いたいと思っています。システム構成案
やりたいこと
- 自社ウェブサイトの約500ページを対象にしたセマンティック検索。
- 検索窓はその自社ウェブサイトに設置する。
- 検索窓に文字を入力し「検索」ボタンをクリックすると検索結果としてページタイトルが検索結果ページで表示され、それクリックすると当該ページが表示される。
環境的なこと
- ウェブサイトは、共有レンタルサーバーで独自ドメインで公開中。
- ページはほとんどが静的HTMLで、検索対象ページはクロールできる範囲でOK。
- レンタルサーバーではPHP、Pythonが利用可能。自社でそれらを使ったプログラミングも可能。
- レンタルサーバーではcronが利用可能。
KandaSearchの契約等
- スタンダードEntryプランの契約。
- Webページクローラーは無料のものを使う。無料版の制約的な部分はそれでOKとする。
ここからが質問です。
セマンティック検索用のフィールドのスキーマ定義と、ドキュメントに記載されているEmbeddingsProcessorFactoryの定義をSolrコンフィグに行ったコレクションがあるとします。Q1.無償のWebページクローラーを使用してのベクトル計算はどのタイミングで行うのでしょうか?
それとも、無償のWebページクローラーを介したクロールではベクトル計算を行うことは難しいでしょうか?(当方、Solrは詳しくありません。javaも書けません)Q2.Q1が「できない」場合は、クローラーを自前で用意するなどしてインデクシング用のドキュメントを準備し、EmbeddingsProcessorFactoryを使ってベクトル計算&インデクシングを行うアプリやスクリプトを自社ウェブサイト上などに作り実行すれば実現できるのでしょうか?
Q3.ドキュメントによれば「EmbeddingsProcessorFactoryは、少量のインデクシング時ベクトル計算を行うのに向くApache SolrのUpdateRequestProcessorです」とあります。今回の用途では使えないのでしょうか?
よろしくお願いします。
- PhoneticSearch を構成するには
こんにちは、
フォネティック検索をフィールド定義に追加する方法は見つけましたね。素晴らしいですね。しかし、この設定をどのように構成すればよいのでしょうか?
例えば、"Testkudne"で検索すると、"Testkunde"という値を持つドキュメントが見つかるようにするにはどうすればよいでしょうか?また、"Andre"で検索すると、"André"も見つかるようにするにはどうすればよいでしょうか?
以下は私のインデックスとクエリに使用されている定義です:<dynamicField name="*_txt_de" type="text_de" indexed="true" stored="true"/> <fieldType name="text_de" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball"/> <filter class="solr.GermanNormalizationFilterFactory"/> <filter class="solr.BeiderMorseFilterFactory" nameType="GENERIC" ruleType="APPROX" concat="true" languageSet="auto"/> </analyzer> </fieldType>
Christian
- バリューのランタイムタイプ
こんにちは!
クライアントAPIでは、インデックスに追加するドキュメントを指定できます。
例えば:
final var document = new SolrInputDocument(); document.addField("x", "a"); document.addField("y", "b"); document.addField("z", "c"); client.add(collection, document);
サーバー側にスキーマがあり、そこに「x」「y」「z」の型が定義されている場合、ドキュメントのインデックス作成時に正しい型が割り当てられます。ただし、これらのフィールドがスキーマに存在しない場合、ほぼ間違いなくテキスト型のようなフォールバック型が割り当てられるでしょう。
addField()
メソッドのドキュメントには次のように記載されています:"既存の値があってもなくてもフィールド値を追加します。valueパラメータとnameパラメータのクラス型はschema.xmlに一致する必要があります。schema.xmlはデフォルトでsolr homeのconfディレクトリ内にあります。"
パラメータ:
name – フィールド名。schema.xml内の "fields" タグで定義されたフィールド名の1つに一致する必要があります。
value – フィールド値。schema.xmlで該当フィールドの"type"属性で定義されたクラス型と同じクラス型である必要があります。この記述から、「同じクラス型」とは、
solr.UUIDField
やsolr.BoolField
などのsolr.*
型を指していると推測されます。しかし、このドキュメントはすでに誤りを含んでいるようです。なぜなら、上記の例では明らかに文字列定数値を渡していても問題なく受け入れられているからです。実際に
solr.*
クラスの値を提供しようとすると、solr-core
を依存関係として取り込む必要があります。しかし、それにより大量のサーバー側コンポーネントが含まれるようになります。それでも、例えばsolr.UUIDField
の値をどうやって作成すればよいのか明確ではありません。これらのクラスはフィールドの型に関するものであり、フィールドの値についてではないようです。スキーマ内のほとんどのフィールドの型を指定することは可能ですが、一部のフィールドについては事前に正確な型を把握していません。これらのフィールドに対して、単なるテキスト型以上に精密な型が推論されるように値をAPIに渡すには、どうすればよいのでしょうか?
--
Mark Raynsford | https://www.io7m.com - solr.autoSoftCommit.maxDocs:1
参考までにお伝えすると、DIH(Data Import Handler)を置き換えるスクリプトで、ドキュメントをバッチ処理で投稿し、
commit=true
を指定して実行しています。この際のタイミングを計測しました。- スタンドアロンの「開発用」ノードでは、バッチサイズを約5000ドキュメントにすると最高のスループットを得られました。
- 一方、
numreplicas=2
かつnumshards=1
の「本番用」2ノードクラウドでは、バッチサイズは2000ドキュメントが最適でした。
1ドキュメントごとにコミットするのは、非常に時間がかかります。
バージョン8.11.2のデフォルト設定では、どちらの
autoCommit
設定にもmaxDocs
の指定がありません。Dima
- OR句の一致数に基づくランキング
私たちは、トピックやその他の特徴を持つ本を検索する検索エンジンを持っています。これらの特徴に基づいてファセットを行い、UIでユーザーが興味のあるトピックをチェックできるようにしています。ユーザーが複数のトピックをチェックすると、チェックされたトピックのいずれかを持つ本を取得するので、検索は離散的になります。
私の質問は、複数の選択されたトピックに一致する本を、1つのトピックにしか一致しない本よりも高くランク付けする方法はありますか?
ここでのトピックは一例に過ぎません。理想的には、SolrにdocValuesとしてしか持っていない特徴に対してこれを行いたいと考えていますので、Solrから返された後にそれらを並べ替えるには、可能であれば避けたい変更が必要です。
これは「クラシックな」質問かもしれませんが、GoogleやStackExchangeで回答を得られるクエリを作成することができませんでした。
ありがとうございます!
/Noah
トピックへ返信するには、ログインが必要です。