2015-11-07 62 views
0

我正在運行PostgreSQL數據庫。我有一個沒有時區類型的時間戳字段的表格。 enter image description here獅身人面像索引datetime字段不正確

我索引此表獅身人面像,這裏是我的config.txt部分:

source ad: base 
{ 
sql_query_range = SELECT MIN(id), MAX(id) FROM ad 
sql_range_step = 1000 
sql_query =\ 
    SELECT ad.id, \ 
      ad.title, \ 
      ad.category, \ 
      ad.subcategory, \ 
      ad.price, \ 
      ad.currency, \ 
      ad.url, \ 
      ad.photo_urls, \ 
      ad.city AS location, \ 
      ad.ad_id, \ 
      ad.date \ 
    FROM ad \ 
    WHERE ad.id BETWEEN $start AND $end 

sql_field_string = title 
sql_attr_uint = category 
sql_attr_uint = subcategory 
sql_attr_uint = location 
sql_attr_uint = price 
sql_attr_string = url 
sql_attr_string = ad_id 
sql_attr_string = photo_urls 
sql_attr_multi = uint filtr from query; \ 
     SELECT ad_id, filter_value_id \ 
     from ad_filter_value_list 
sql_attr_timestamp = date 
} 

但在索引表中的字段date包含了一年的纔有價值,即「2015」,而不是全日。哪裏可以是錯誤?

回答

1

Sphinxes timestamp屬性類型是一個(無符號)整數。真的,它與函數中的sql_attr_uint沒有什麼不同。

它的目的是使用一個普通的整數unix時間戳。

在mysql中有一個UNIX_TIMESTAMP()函數將本機datetype轉換爲unix時間戳。希望PostgreSQL有一些similer。看起來像extract()函數? https://dba.stackexchange.com/questions/2796/how-do-i-get-the-current-unix-timestamp-from-postgresql

+0

謝謝!我將'SELECT ad.date'部分中的'config.txt'改爲 '提取(在時區'utc + 2'從ad.date開始的時代)AS date' 現在'date'字段包含時間戳整數),我可以很容易地轉換成可讀格式。 –