2014-11-14 2 views
0

я хочу, чтобы получить запись в течение периода в Solrкак получить данные за определенный период в Apache Solr

мой URL является

http://localhost:8090/solr/select?q=xyz=Vehicles per KM of record Road&version=2.2&start=0&rows=200&indent=on&omitHeader=true&wt=json&sort=timestamp desc 

и мой ответ

{ 
    "response": { 
     "numFound": 4, 
     "start": 0, 
     "docs": [ 
      {     
       "xyz": "some record one", 
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-07T10:41:29.544Z", 
       "id": [ 
        "e1d1865-1402-ef20-6880-9262d6e7d22" 
       ] 
      }, 
      {     
       "xyz": "some record two", 
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-06T10:34:53.799Z", 
       "id": [ 
        "99eab5aa-c83b-e90b-e548-6d09e94c9ba2" 
       ] 
      }, 
      {     
       "xyz": "some record three",    
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-03T09:05:45.521Z", 
       "id": [ 
        "84fba82a-2ae6-eaa8-1b37-79c842c9e96" 
       ] 
      }, 
      {     
       "xyz": "some record four",    
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-01T09:05:45.521Z", 
       "id": [ 
        "84fba82a-2ae6-eaa8-1b37-79c842c9e96" 
       ] 
      } 

     ] 
    } 
} 

Я получаю некоторые проблемы

1. в моем запросе поискового запроса указано «Транспортные средства на КМ записи Road». , но я получаю записи, которые не имеют.

это предполагают, чтобы прийти только одна запись

{     
       "xyz": "Vehicles per KM of record Road",    
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-01T09:05:45.521Z", 
       "id": [ 
        "84fba82a-2ae6-eaa8-1b37-79c842c9e96" 
       ] 
      } 

2.Я хочу, чтобы получить записи для определенных периодов пример из 2014-11-08 по 2014-11-05

только в этом случае две записи должны прийти

{     
       "xyz": "some record one", 
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-07", 
       "id": [ 
        "e1d1865-1402-ef20-6880-9262d6e7d22" 
       ] 
      }, 
      {     
       "xyz": "some record two", 
       "ids": "an22f17b87-3c75-4b77-9300-9039a9fe63f2", 
       "timestamp": "2014-11-06", 
       "id": [ 
        "99eab5aa-c83b-e90b-e548-6d09e94c9ba2" 
       ] 
      } 

но я получаю все записи пожалуйста, помогите мне

ответ

1

В зависимости от типа поля, то второй вопрос должен быть интервал фильтра даты (до тех пор, как это поле даты .. хотя это вероятно, будет работать со строковыми полями, а):

timestamp:[2014-11-05 TO 2014-11-09] 

Вы, возможно, придется tweak эти значения, чтобы получить правильное отрезание (но я думаю, что 11-09 должно быть 2014-11-09 00:00:00, а это означает, что должны быть включены только записи с более ранней даты).

Для первой части это зависит от вашего синтаксического анализа. Если синтаксический анализатор равен dismax, то условие и логический оператор по умолчанию определяют, как выполняется поиск. Вы не хотите там xyz=, если только он не является частью данных, которые вы ищете (поиск в определенном поле будет field:).

Используйте страницу анализа в администрации Solr, чтобы узнать, почему вы не согласны с тем, что вы ищете (введите индексированный контент и строку поиска, в котором вам будет предоставлено более подробное представление о том, что делает Solr для внутреннего использования каждый шаг).

Смежные вопросы