4
我要爲下表結構創建sphinx
搜索:需要斯芬克斯配置用於非整數主鍵
CREATE TABLE IF NOT EXISTS `books` (
`productID` varchar(20) NOT NULL,
`productName` varchar(256) NOT NULL,
`ISBN` varchar(20) NOT NULL,
`author` varchar(256) DEFAULT NULL,
`productPrice` float(10,2) NOT NULL,
`discount` float(10,2) NOT NULL,
`brandID` int(11) NOT NULL,
`qty` int(11) NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`productID`),
KEY `status` (`status`),
KEY `ISBN` (`ISBN`),
KEY `author` (`author`),
KEY `brandID` (`brandID`),
KEY `books_index` (`productName`)
) ENGINE=innodb DEFAULT CHARSET=latin1;
我不能改變在上表中productID
柱..
我有依賴爲author
和Brands
CREATE TABLE IF NOT EXISTS `authors` (
`authorID` ini(11) NOT NULL,
`author_name` varchar(256) NOT NULL
PRIMARY KEY (`authorID`)
) ENGINE=innodb DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `brands` (
`brandID` ini(11) NOT NULL,
`brandName` varchar(256) NOT NULL
PRIMARY KEY (`brandID`)
) ENGINE=innodb DEFAULT CHARSET=latin1;
表請一定一爲提供配置搜索。
我正在使用以下配置。
source src1
{
type = mysql
sql_query = SELECT CRC32(productID) as productid,productID,productName,ISBN,brandID,author FROM sapna_ecom_products
sql_attr_uint = productID
sql_field_string = ISBN
sql_field_string = productName
sql_field_string = brandID
sql_attr_multi = uint brandID from field; SELECT brandID,brandName FROM sapna_ecom_brands
sql_attr_multi = uint author from field; SELECT authorID,author_name FROM sapna_ecom_authors
sql_query_info = SELECT productID,productName,ISBN,brandID,author FROM sapna_ecom_products WHERE CRC32(productID)=$id
}
我得到的結果,如果我通過productName
搜索,而不是author
和brand
我的目標是,如果用戶搜索任何由productName
或author
或brand
請別人提供得到的結果我合適的配置..
謝謝..
謝謝你replay..its幫了我很多。我已經編輯我的問題。可以üPLZ提供商我配置.. –
我承認不真的知道stackoverflow ettiquete但你添加的額外的東西是不相關的原始問題 - 所以應該開始一個新的問題。提示:應該可能使用sql_joined_field不是整數屬性 – barryhunter