フィールドを「保存しない」とマークした場合、Solr はそのフィールドの元の内容をどこにでも保持しますか?それとも、インデックス自体のために選別した「単語の袋」のみを保持しますか?
文書セキュリティの観点からお尋ねします。誰かが Solr インデックスを実行しているマシンに侵入した場合、この「保存しない」フィールドで元のテキストを Solr に渡すことができるでしょうか?
いいえ、Solr インデックスは、 に設定されたフィールドの取得または表示可能な方法で元の値を保存しませんstored="false"
。Solr wiki のCommon Field optionsには、格納されたオプションを設定する次の動作が記載されています。
検索中にフィールドの値を取得できるようにする場合は true
誰かが Solr インデックスを実行しているマシンに侵入し、上記に基づいて Solr クエリを実行した場合、Solr はそのフィールドを返さないため、フィールドの内容を見ることができません。しかし、彼らがディスク、実際のインデックス フォルダー、および Lucene によって書き込まれたセグメント ファイルにアクセスできる場合、Luke - Lucene Index Toolboxを使用してインデックス フォルダーを調べることで、Solr がそのフィールドの各ドキュメントに格納した用語を確認できます。
フィールドが Storable.No の場合、Lucene が検索を実行するのに十分な情報のみが保存されます。
ただし、各フィールドを構築するときに WITH_POSITIONS_OFFSETS を指定すると、通常、取得するのに十分な情報があります。
lowercase(EXACTSTRINGINDEXED) - LUCENEDELIMITERS - STOPWORDS
たとえば、インデックスを作成した場合:
Jerry&Mary's Live Bait and Yellow Cab
"&" と "'" を区切り文字として扱い、1 文字のインデックスを作成せず、'and' をストップワードとして処理するアナライザーを使用すると、次のようなインデックスが表示されます。
jerry mary live bait [null word] yellow cab
(上記のように、これは Luke で確認できます。)