Solrで整数型(int)のフィールドにおいて、先頭のゼロが自動的に削除されてしまう問題があります。この問題を文字列型(string)を使用せずに解決する方法はありますか?

トピック作成者:ks-solruserml-bot (2024/08/21 22:03 投稿)
6
OpenOpen

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

こんにちは、皆さん。

現在、Solrでintデータ型のフィールドを使用しています。追加しようとしている値は0045です。しかし、Solrがこの値をそのフィールドに挿入すると、先頭の'00'が自動的に削除されます。Solrで表示される値は45です。この問題を解決し、データ型をintから変更することなく、Solrに0045のままデータを追加する方法を教えてください。

元の値 = 0045

現在のSolrの値 = 45

Solrで期待される値 = 0045

Schema.xml

<dynamicField name="test" type="int" indexed="true" stored="true" />

注意事項:データ型をintから変更せずに、Solrで先頭のゼロを保持するようにしたいです。

よろしくお願いします。

Shubham Panchal

返信投稿者:ks-solruserml-bot (2024/08/21 22:04 投稿)

あなたは、無理なことをしようとしているのではないかと思います。

これまでに、整数型があなたの提案するように先頭のゼロを保持するのを見たことがありません。フォーマットを保持する必要があるなら、文字列型を使用してください。ただ整数が必要なら、整数型を使用してください。

Charlie

返信投稿者:ks-solruserml-bot (2024/08/21 22:04 投稿)

整数としては、0045、000000000000045、45は、すべて10進数の位置形式で同じ値です。

Charlieに同意します。文字列として扱いたいのであれば、文字列型を使用してください。必要に応じて、文字列を保存された値として使用し、コピー・フィールドとして使用することもできますし、元の値を整数としてインデックス化して、数学的な検索操作を行うこともできます。

よろしくお願いします。

返信投稿者:ks-solruserml-bot (2024/08/21 22:04 投稿)

こんにちは皆さん、

最近、ある回答を受け取りましたが、データベースにこの値を挿入する際には値が 0045 になります。リストに表示される値も 0045 です。しかし、Solrに 0045 を挿入しようとすると、45 として保存されます。どうすればSolrで同じ 0045 を保持することができるでしょうか?

ただし、copyField を使用すると、インデックススペースが大きくなる問題が発生します。そのため、Solrに 0045 を保存するための別の方法はありますか?

この目標を達成するための解決策はありますか?

よろしくお願いします。

Shubham Panchal

返信投稿者:ks-solruserml-bot (2024/08/21 22:04 投稿)

こんにちは Shubham、

「45」を保存するのには 1 バイト未満 で済みますが、「0045」を保存するにはおよそ 4 バイトが必要です。Solrはおそらく合理的な選択をしたのだと思います。

--
よろしくお願いします、
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2024/08/21 22:05 投稿)

なぜこれをクロスポストしたのかわかりませんが、私の答えは変わりません:

整数としては、0045、000000000000045、45は、すべて10進数の位置形式で同じ値です。

Charlieに同意します。文字列として扱いたいのであれば、文字列型を使用してください。必要に応じて、文字列を保存された値として使用し、コピー・フィールドとして使用することもできますし、元の値を整数としてインデックス化して、数学的な検索操作を行うこともできます。

Alessandro Benedetti
ディレクター @ Sease Ltd.
Apache Lucene/Solr コミッター
Apache Solr PMC メンバー

返信投稿者:ks-solruserml-bot (2024/08/21 22:05 投稿)

Solr にプラグインを作成して、そのフィールドに基づいてレスポンスに先頭のゼロパディングを追加することができます。カスタムレスポンスライターを作成するのも良いかもしれません。

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

KandaSearch

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

投稿の削除

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