2017-01-22 90 views
0

我想通過UnixODBC在Firebird上使用Sphinx搜索。所有組件單獨工作的優良:斯芬克斯通過與MySQL的樣品測試和ODBC連接到Firebird的是.fdb無法在組合中的數據庫Sphinx + UnixODBC +火鳥

但是,如果我嘗試獅身人面像連接到ODBC,我得到這個索引錯誤:

ERROR: index 'fb': sql_connect: [unixODBC][ODBC Firebird Driver]unavailable database (DSN=odbc://:***@:0/).

這裏的一部分我的sphinx.conf:

source src_fb 
{ 
    type=odbc 

    odbc_dsn=Driver=/usr/lib/libOdbcFb.so;Dbq=localhost:/var/lib/firebird/2.5/data/employee.fdb;Uid=SYSDBA;Pwd= 

    sql_query  = \ 
    SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \ 
    FROM documents 
} 

.fdb是ODBC連接到的同一文件。

+1

你在隔離測試ODBC時使用相同的連接字符串? –

+0

他們似乎與我相同,但顯然,odbc_dsn行無效。 – KOHTPOJIEP

+0

可能是'Dbq'和'Dbname'。 'Driver'後的AFAIK屬性是特定於驅動程序的,但我從不使用ODBC,所以我不太確定。 –

回答

1

這裏是解決方案: sphinx.conf中我改變只有一個字符串: odbc_dsn = DSN =員工

所以現在需要的獅身人面像從ODBC配置文件中的所有需要​​的數據。從ODBC.INI

數據庫:

[employee] 
Description = Firebird 
Driver = Firebird 
Dbname = localhost:/var/lib/firebird/2.5/data/employee.fdb 
User = SYSDBA 
Password = 
Role = 
CharacterSet = 
ReadOnly = No 
NoWait = No 

和司機從ODBCINST.INI CONFIGS:

[Firebird] 
Description = Firebird ODBC Driver 
Driver = /usr/lib/libOdbcFb.so 
Threading = 1 
FileUsage = 1 
CPTimeout = 
CPReuse =