SolrがクエリレスポンスでnumFoundをどのように設定するかについて

トピック作成者:ks-solruserml-bot (2024/06/17 19:15 投稿)
1
CloseClose

(The bot translated the original post https://lists.apache.org/thread/n7wn28zhk7zp4t85nfyo8hrksk24k65l into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

私たちは、Solrをプライマリサーバーとフェイルオーバーサーバーにインストールしています。プライマリでコレクションをインデックス化すると、すべてのインデックスされたファイルがディスクに作成され、レプリケーションを介してフェイルオーバーサーバーのディスクにコピーされます。

プライマリでコアにクエリを実行すると、正しいドキュメント数(numFound="21194")が表示されますが、同じクエリをフェイルオーバーサーバーで実行するとnumFound="0"と表示されます。

クエリは、Solr管理ウェブサイト http://localhost:8983/solr にアクセスし、コアを選択してから、「Query」をクリックし、「[Execute Query]」をクリックして実行されます。パラメータは選択されていないので、コレクション内のすべてのドキュメントが取得されます。

以下のコードは、Solrが返したものです。

numFound="21194"はどこから取得されているのでしょうか?

この質問をする理由は、コレクションをインデックス化したプライマリサーバーのコアにクエリを実行すると、以下のように正しいドキュメント数が返されるのに、フェイルオーバーサーバーで同じことを行うとnumFound="0"と表示されるからです。

ありがとうございます。

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">2</int>
    <lst name="params">
      <str name="q">*:*</str>
      <str name="indent">true</str>
      <str name="q.op">OR</str>
      <str name="_">1643299742083</str>
    </lst>
  </lst>
  <result name="response" numFound="21194" start="0" numFoundExact="true">
返信投稿者:ks-solruserml-bot (2024/06/17 19:16 投稿)

それは、クエリに一致するインデックス内のドキュメントの総数です。この場合、クエリはすべてのドキュメントなので、インデックス内のドキュメントの総数を示しています。

データをどのようにコピーしたのですか?レプリケーションについて言及しましたが、それはSolrレプリケーションですか、それとも自分でコピーしたのですか?もしSolrなら、2つのサーバーはどのように設定されていますか?フェイルオーバーサーバーのコアをリロードすると、何か変わりますか?

ありがとうございます、
Shawn

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?