0

私は自分の実装にかなりの時間を費やしています。

solrサーバーが実行されています。コアは3つありますが、簡単にするために「メンバー」、「ビジネス」、「製品」と呼びましょう。

solrnetを使おうとしましたが、シャーディングをサポートしていません。だから、私は自分でURLを作成しなければならないのではないかと恐れています。

そこで、問題に気付いたときに、管理ツールを使用してクエリ用のサンプルURLをいくつか作成しました。Solrは、「含む」ではなく「等しい」を実行し、大文字と小文字を区別します。私はおそらくこれについてすべて間違っていることを知っています。

だから、私はqtパラメータを「dismax」に設定する必要があることを読みました。管理ツールを介してメンバーのコアのみを検索した場合にのみ、「未定義のフィールド価格」が表示されます....私のメンバーには価格フィールド。私の製品はそうです。

クエリで次のことを行う必要があります。

  1. 複数のコアを検索する(シャーディング)
  2. 大文字と小文字の区別
  3. 等しい単語の代わりに単語が含まれています
  4. 複数のフィールドを検索
  5. フィールドの優先度を宣言します(最初に名前で検索し、次に説明などで検索します)

クエリがすべて間違っている可能性がありますが、次のようになります(サーバー名は無実を保護するために変更されました)名前フィールドは実際にはユーザーの姓名を連結したものです....したがって、dismaxで大文字と小文字が区別されるかどうかを確認しようとしました名前にはjim(大文字と小文字を区別しない)という単語が含まれています。

mysolrserver.mydomain.int:8080 / solrQA / select?indent = on&version = 2.2&q = Name:jim&fq =&start = 0&rows = 10&fl = *%2Cscore&qt = dismax&wt = standard&explainOther =&hl.fl =&shards = mysolrserver.mydomain.int:8080 /Members,mysolrserver.mydomain.int:8080/Businesses

どんな助けでも大歓迎です。

4

1 に答える 1

3
  1. SolrNetとシャーディング:ExtraParamsプロパティを試しましたか?
  2. 大文字と小文字の区別:これはLowerCaseFilterFactoryによって処理されます
  3. 単語が含まれています:これは、WhitespaceTokenizerFactoryなどのトークナイザーによって処理されます。
  4. 複数のフィールドを検索してブースティングします。dismaxを使用しているため、qfパラメーターを参照してください。
于 2010-08-26T00:44:49.713 に答える