問題タブ [solarium]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ubuntu - 127.0.0.1:8983 への接続に失敗しました。接続拒否'
何をしても、「Solr HTTP エラー: HTTP 要求が失敗しました。127.0.0.1:8983 への接続に失敗しました; 接続が拒否されました」というメッセージを含む「キャッチされない例外 'Solarium\Exception\HttpException'」が常に表示されます。問題はありますが、まだ上記のエラーが発生しています。curl もインストールされているようで、そのポートに接続できない原因がわからない。
私を助けてください。
solr - Solr はインデックスを作成しますが、solarium は 9 個を超えるドキュメントのインデックスを作成しません
私はUbuntuに取り組んでいます。Solr でドキュメントのインデックス作成に Solarium を使用したいと考えています。Solarium を介してドキュメントのインデックスを作成しようとすると、一度に最大 9 つのドキュメントのインデックスが作成されるため、新しいドキュメントを追加できませんが、シェルから新しいドキュメントのインデックスを作成しようとすると問題なく動作します。
これは私のPHPコードです。私はSolarium 3.0.0とSolr 4.7.2を使用しています
solr - Solr を使用して複雑な複数テーブル検索クエリを実行する
Solr の学習を始めたばかりで、それを学習した理由は、高度な検索クエリ (SQL では単純と見なされるもの) を実行したいが、大量のデータに対して実行したいからです。私が今まで読んだことから(ソラリウムを使用して)、インデックス、更新、選択、および削除できますが、単一の種類のデータ(リレーション/テーブル)に対してのみです。私がやりたいことは、テーブル間で操作を実行できるようにすることです(SQLが独自の方法で行うように)。これは、私が取り組んでいるシナリオの例です。
上記の関係に基づくデータのサンプルを次に示します。
検索クエリの例は、「互いに戦った異なる家の学生のフルネームとそれぞれの家の名前.
SQLでは、次のようなことをします:
そして、解決策は、ダンブルドア対スネイプとポッター対フーのすべてのフィールド (3 つのテーブルすべて) になります。
Solrでできますか?
php - Solr + Solarium: 複数選択ファセットでカウンターが機能しない
Solr + Solarium を使用しています。マルチファセット検索を定義しました。各ファセット オプションの背後にはカウンターがあり、クリックすると返された結果の数が示されます。
複数選択ファセット内でオプションを選択すると、他のファセットのカウンターが引き続き機能することが期待されます。
solr に結果があります。私の古いコード (単一選択ファセット) では、ガソリン/ディーゼルの値が返されました。
たとえば、次の 2 つのファセット:
車のブランド: -volvo (3) -mazda (2) -volkswagen (5)
燃料: -ディーゼル (4) -ガソリン (6)
ボルボとマツダを選択できるようになりたいと思います。Volvo solr/solarium を選択すると、次の 2 つのファセットが返されます。
ブランド: -ボルボ (3) -選択された -マツダ (2) -フォルクスワーゲン (5)
燃料: -ディーゼル (0) -ガソリン (0)
ブランドファセットは良いです。Fuel ファセット カウンターが volvo のディーゼル/ガソリン車の数を返すことを期待します。例: -ディーゼル (2) -ガソリン (1)
私のコード:
php - Solrインデックスからすべてのレコードを削除する方法
全文検索にsolrを使用しています。
私はsolrを初めて使用し、phpソラリウムクライアントによってsolrインデックスからレコードを削除しようとしています。次のコードを使用してレコードを削除しています:
しかし、ブラウザで次のエラーが表示されます。
致命的なエラー: メッセージ「Solr HTTP エラー: OK (500) {"responseHeader":{"status":500,"QTime":1},"error":{"trace" を伴うキャッチされない例外 'Solarium\Exception\HttpException' :"java.lang.NullPointerException\n\tat org.apache.lucene.search.BooleanClause.hashCode(BooleanClause.java:99)\n\tat java.util.AbstractList.hashCode(AbstractList.java:542)\n\ tat org.apache.lucene.search.BooleanQuery.hashCode(BooleanQuery.java:520)\n\tat java.util.HashMap.put(HashMap.java:389)\n\tat org.apache.lucene.index.BufferedUpdates .addQuery(BufferedUpdates.java:152)\n\tat org.apache.lucene.index.DocumentsWriterDeleteQueue$QueryArrayNode.apply(DocumentsWriterDeleteQueue.java:365)\n\tat org.apache.lucene.index.DocumentsWriterDeleteQueue$DeleteSlice.apply (DocumentsWriterDeleteQueue.java:280)\n\tat org.apache.lucene.index.DocumentsWriterDeleteQueue.tryApplyGlobalSlice(DocumentsWriterDeleteQueue.java:200)\n\tat org.apache.lucene.index.DocumentsWriterDeleteQueue.addDelete(DocumentsWriterDeleteQueue.java:107)\n\tat org.apache.lucene.index.DocumentsWriter.delete /var/www/library/Solarium/Core/Query/Result/Result.php の 103 行目
solr - このようなものでは、期待される結果が得られません
同様の顧客を見つけるために、このハンドラーに似たsolrを実装しています。
同じ住所に住んでいる名前の異なる 2 人の顧客がいます。entity_id を solr に付与し、同様の名前/アドレスを持つすべてのクライアントを取得したいと考えています。クライアントは、ボタンをクリックするだけで両方の顧客を結び付けることができます。
私はコードでこれを行うためにSolariumBundleを使用していますが、最初に生のクエリで動作するようにするだけで十分なはずです.
これは私のsolrconfig.xmlです
私のschema.xmlの関連部分は次のとおりです。
私は現在、次のクエリを実行してhttp://localhost:8983/solr/core0/mlt?q=entity_id%3A50&wt=json&indent=true&mlt.fl:customer_data
います: 似たような名前の顧客の結果が返されます。たとえば、customer_id:50 (私が照会しているもの) の名前が「Foo Bar」の場合、「Foo Bar」、「Bar Foo」、「John Foo」という名前の顧客が返されます。通り/国/郵便番号の類似性は機能しません。
debug:parsedquery では、さまざまな変化が見られますcustomer_data:Foo customer_data:Bar customer_data oo Bar, ...
が、アドレス部分には何もありません。
クエリが次のものであることを確認するにはどうすればよいcustomer_data:Foo customer_data:Bar customer_data:teststreet customer_data:Antwerp
ですか?
solr - Solr : グループ結果のカスタムソートを行う方法
Solr では、「ハッシュ」(カスタム フィールド) フィールドで groupBy を使用して結果を取得しています。ご存知のように、各グループには一連のドキュメントが含まれます。
私の要件は次のとおりです。
- Solr はまず、すでに行っているスコアに基づいてソートを行います。
- 任意の 2 つのグループのスコアが同じである場合、
group with more number of documents should come up.
- 偶数個のドキュメントが同じ場合、
there should be some tie-breaker.
ポイント 2 と 3 のガイダンスが必要です。'sort' パラメータを使用してそれを行う方法を取得できません。
ありがとうアミット・アガルワル
solr - Solr と二重引用符で囲まれた検索フレーズ
Solr (Solarium ライブラリを使用) を実装している e コマース サイトがあり、二重引用符 (通常はインチを表す) を含む製品名と説明があります。Solr のアナライザーとトークナイザーの部分を理解する前に、このデータを含むフィールドに text_en_splitting のデータ型を割り当てただけです。誰かがフレーズを検索した場合 -青の 1 インチ バインダー- 二重引用符が削除されており、返される最初の 10 個の結果が必ずしもバインダーであるとは限りません。返された結果は、単語 blue と数字の 1 に一致しているようです (これらはバインダーではありません)。Solr admin でクエリを分析すると、二重引用符が WordDelimiterFilterFactory から削除されていることがわかります。私は別の理由 (ポストイット ノートというフレーズを扱うなど) で WordDelimiterFilterFactory が好きなので、ここで幸せな媒体を見つけようとしています。検索を実行するときに保持する必要がある二重引用符を含むインデックス フィールドとクエリ フィールドの両方に対するより良い方法はありますか (それらは実際に何かを意味するため)。