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