2017-01-22 83 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 =