2016-05-10 4 views
2

Solr 6.0.0を使用して、コレクション中の文書の自動有効期限を設定するためにthis walkthroughに従った。Solr自動収集の文書

  1. 私は上記の構成で、コレクションを作成し

    <!-- auto delete collection --> 
    <updateRequestProcessorChain default="true"> 
    <processor class="solr.TimestampUpdateProcessorFactory"> 
        <str name="fieldName">timestamp_dt</str> 
    </processor> 
    <processor class="solr.processor.DocExpirationUpdateProcessorFactory"> 
        <int name="autoDeletePeriodSeconds">30</int> 
        <str name="ttlFieldName">time_to_live_s</str> 
        <str name="expirationFieldName">expire_at_dt</str> 
    </processor> 
    <processor class="solr.FirstFieldValueUpdateProcessorFactory"> 
        <str name="fieldName">expire_at_dt</str> 
    </processor> 
    <processor class="solr.LogUpdateProcessorFactory" /> 
    <processor class="solr.RunUpdateProcessorFactory" /> 
    

  2. (ウォークスルーの提案どおりに)私のデフォルトのsolrconfig.xmlは添加のみを持っています。

    bin/solr create -c tweets -d tweets_configs -s 1 -rf 1 
    
  3. 挿入された文書

    date -u && curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/tweets/update?commit=true' -d '[{"id":"live_forever"},{"id":"live_2_minutes_a", "time_to_live_s":"+120SECONDS"}]' 
    

    date -u && curl -X POST -H 'Content-Type: application/json'  
    'http://localhost:8983/solr/tweets/update?commit=true&_ttl_=%2B5MINUTES' -d 
    '[{"id":"live_a_long_time", 
    "expire_at_dt":"3000-01-01T00:00:00Z" }, 
    {"id":"live_2_minutes_b", 
    "time_to_live_s":"+120SECONDS"}, 
    {"id":"use_default_ttl"}]' 
    
  4. しかし、私は書類を照会すると、ウォークスルーあたりとしてそこにあったはずのように設定何ら有効期限はありません。

    { 
        "responseHeader":{ 
        "zkConnected":true, 
        "status":0, 
        "QTime":19, 
        "params":{ 
         "q":"*:*", 
         "indent":"on", 
         "wt":"json"}}, 
        "response":{"numFound":5,"start":0,"docs":[ 
         { 
         "id":"live_forever", 
         "_version_":1533920832055672832}, 
         { 
         "id":"live_2_minutes_a", 
         "time_to_live_s":"+120SECONDS", 
         "_version_":1533920832086081536}, 
         { 
         "id":"live_a_long_time", 
         "expire_at_dt":"3000-01-01T00:00:00Z", 
         "_version_":1533921242796523520}, 
         { 
         "id":"live_2_minutes_b", 
         "time_to_live_s":"+120SECONDS", 
         "_version_":1533921242825883648}, 
         { 
         "id":"use_default_ttl", 
         "_version_":1533921242829029376}] 
        }} 
    

Iは自動的にSTEP1で構成された複数のメカニズムに従って設定期限を表示することが期待していたのに対し。

6.0.0では4.8よりも動作が異なりますか?または私は何か明白な行方不明ですか?

答えて

0

デフォルトupdateRequestProcessorChainは1つしかありませんでしたが、data_driven_schema_configs configsetで開始し、新しいupdateRequestProcessorChainを含めるように変更しましたが、これは使用していないため使用されません。

<initParams path="/update/**"> 
<lst name="defaults"> 
    <str name="update.chain">add-unknown-fields-to-the-schema</str> 
</lst> 
</initParams> 

は、「add-unknown-fields-to-the-schema」updateRequestProcessorChainを使用するように強制していました。

これをコメントし、自動有効期限を設定するために私のデフォルトを希望のプロセッサーに更新しなければなりませんでした。確かに非常に強力な機能!

クレジットからChris Hostetter solr-userリストへの回答。

関連する問題