1

Solr を初めて使用するので、新しいコアを作成し、デフォルトschema.xmlconf/フォルダーにコピーしました。私が行った変更は非常に些細なことです。

<field name="id" type="string" indexed="true" stored="false" required="true" multiValued="false" /> 

ご覧のとおり、idフィールドをstored=falseに設定しました。私の理解によれば、クエリ検索を行うと、フィールドidは表示されません。しかし、それは起こっていません。solr インスタンスを再起動しようとしましたが、クエリを実行してファイルのインデックスを再度作成しました。

curl 'http://localhost:8983/solr/TwitterCore/update/json?commit=true' 
  --data-binary @$(echo TwitterData_Core_Conf/TwitterText_en_demo.json) 
  -H 'Content-type:application

Solr Wikiによると、これでファイルのインデックスが再作成されたはずです。ただし、クエリを再度実行すると、Id.

返されるドキュメントの例 (これは完全な JSON ノードではなく、一部をコピーしただけです):

"text": [
      "RT @FollowTrainTV: Moonseternity just joined #FollowTrainTV - Watch them stream on http://t.co/oMcOGA51kT"
    ],
    "lang": [
      "en"
    ],
    "id": "0a8edfea-68f7-4b05-b370-27b5aba640b7", // I dont want to see this
    "_version_": 1512067627994841000

誰かがインデックスの再作成に関する詳細な手順を教えてくれるかもしれません。

4

2 に答える 2

1

このhttps://lucene.apache.org/solr/guide/6_6/docvalues.htmlドキュメントを参照してください。

各フィールドの useDocValuesAsStored パラメーターの有効な値に応じて、検索クエリですべてのフィールドが返されるように指定されている場合 (例: "fl=*")、保存されていない docValues フィールドも他の保存されたフィールドと共に返されます。スキーマ バージョン >= 1.6 の場合、暗黙的なデフォルトは useDocValuesAsStored="true" です。

String フィールド タイプには docValues="true" があります。それが検索応答に表示される理由です。

useDocValuesAsStored="false" パラメータをフィールドに追加するか、別のフィールド タイプ (text_general など) を使用できます。

于 2019-12-09T09:05:34.010 に答える