2014-06-07 1 views
0

HTTP를 통해 SOLR API를 사용하여 검색 할 때 Riak이 날짜 형식을 기대하는 이유는 무엇입니까? 인덱싱 된 데이터가 있습니다. 나는이 포함 변화의 무리를 시도했습니다HTTP 및 날짜 범위에서 Rick SOLR?

%% Field names ending in "_dt" are indexed as dates 
     {dynamic_field, [ 
      {name, "*_dt"}, 
      {type, date}, 
      {analyzer_factory, {erlang, text_analyzers, noop_analyzer_factory}} 
     ]}, 

:

/solr/TestIndex/select?wt=json&q=Timestamp_dt:[20140508000000%20TO%2020140608000000] 
/solr/TestIndex/select?wt=json&q=Timestamp_dt:[20140508T000000Z TO 20140607T000000Z] 
/solr/TestIndex/select?wt=json&q=Timestamp_dt:%5B2014-05-08T00%3A00%3A00.000Z%20TO%202014-06-07T00%3A00%3A00.000Z%5D 
나는 또한 내 스키마 날짜로 _dt을 따기입니다 확인했습니다

{ 
    "responseHeader": { 
     "status": 0, 
     "QTime": 13, 
     "params": { 
      "q": "*", 
      "q.op": "or", 
      "filter": "", 
      "wt": "json" 
     } 
    }, 
    "response": { 
     "numFound": 2, 
     "start": 0, 
     "maxScore": "0.00000e+0", 
     "docs": [ 
      { 
       "id": "09d1bf74-9cdc-4001-8797-fc5a4b9170b0", 
       "index": "TestIndex", 
       "fields": { 
        "Timestamp_dt": "2014-06-06T02:10:35.367Z" 
       }, 
       "props": {} 
      }, 
      { 
       "id": "09d1bf74-9cdc-4001-8797-fc5a4b9170b0", 
       "index": "TestIndex", 
       "fields": { 
        "Timestamp_dt": "2014-06-08T02:10:35.367Z" 
       }, 
       "props": {} 
      } 
     ] 
    } 
} 

: 와일드 카드 검색 것을 확인

내가 엉망이되어서 날짜 범위의 문서가 다소 부족합니다.이 작업을 얻은 사람이 있습니까? 나는 신 (新) 시대의 시대로의 전환을 고수하고 있습니까?

답변

1

날짜 필드는 noop 분석기를 사용하므로 색인 된 텍스트는 정확하게 저장됩니다. (왜 확실하지

% curl localhost:8098/buckets/testbucket/keys/1 -XPUT -H "content-type: application/json" \ 
    -d '{"item":"1","stamp_dt":"2014-06-06T02:10:35.367Z"}' 
% curl localhost:8098/buckets/testbucket/keys/2 -XPUT -H "content-type: application/json" \ 
    -d '{"item":"2","stamp_dt":"2014-06-07T02:10:35.367Z"}' 
% curl localhost:8098/buckets/testbucket/keys/3 -XPUT -H "content-type: application/json" \ 
    -d '{"item":"3","stamp_dt":"2014-06-07T06:10:35.367Z"}' 

% curl -g 'localhost:8098/solr/testbucket/select?q=stamp_dt:2014-06-06T02\:10\:35.367Z' 
<?xml version="1.0" encoding="UTF-8"?> 
<response> 
    <lst name="responseHeader"> 
    <int name="status">0</int> 
    <int name="QTime">1</int> 
    <lst name="params"> 
     <str name="indent">on</str> 
     <str name="start">0</str> 
     <str name="q">stamp_dt:2014-06-06T02\:10\:35.367Z</str> 
     <str name="q.op">or</str> 
     <str name="filter"></str> 
     <str name="df">value</str> 
     <str name="wt">standard</str> 
     <str name="version">1.1</str> 
     <str name="rows">1</str> 
    </lst> 
    </lst> 
    <result name="response" numFound="1" start="0" maxScore="0.353553"> 
    <doc> 
     <str name="id">1 
     </str> 
     <str name="item">1 
     </str> 
     <date name="stamp_dt">2014-06-06T02:10:35.367Z 
     </date> 
    </doc> 
    </result> 
</response> 

당신이 선택한 날짜 형식은 또한 쿼리를 다양 잘 빌려 준다 : 그러나 콜론은 쿼리에 적극적으로 캐릭터입니다, 그래서 당신은 값을 탈출해야합니다 공백을 명시 적으로 % 20 (으)로 인코딩해야합니다.) :

% curl -g 'localhost:8098/solr/testbucket/select?q=stamp_dt:[2014-06-06%20TO%202014-06-07T23\:59]' 
<?xml version="1.0" encoding="UTF-8"?> 
<response> 
    <lst name="responseHeader"> 
    <int name="status">0</int> 
    <int name="QTime">4</int> 
    <lst name="params"> 
     <str name="indent">on</str> 
     <str name="start">0</str> 
     <str name="q">stamp_dt:[2014-06-06 TO 2014-06-07T23\:59]</str> 
     <str name="q.op">or</str> 
     <str name="filter"></str> 
     <str name="df">value</str> 
     <str name="wt">standard</str> 
     <str name="version">1.1</str> 
     <str name="rows">3</str> 
    </lst> 
    </lst> 
    <result name="response" numFound="3" start="0" maxScore="0.00000e+0"> 
    <doc> 
     <str name="id">1 
     </str> 
     <str name="item">1 
     </str> 
     <date name="stamp_dt">2014-06-06T02:10:35.367Z 
     </date> 
    </doc> 
    <doc> 
     <str name="id">2 
     </str> 
     <str name="item">2 
     </str> 
     <date name="stamp_dt">2014-06-07T02:10:35.367Z 
     </date> 
    </doc> 
    <doc> 
     <str name="id">3 
     </str> 
     <str name="item">3 
     </str> 
     <date name="stamp_dt">2014-06-07T06:10:35.367Z 
     </date> 
    </doc> 
    </result> 
</response> 
관련 문제