发表回复 
 
主题评价:
  • 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
数据表多字段查询如何实现?
2016年07月26日, 14:52 (这个帖子最后修改于: 2016年07月26日 14:57 by zhengpeng.)
数据表多字段查询如何实现?
1.brand.ini
// ---------------------------------
project.name = brand
project.default_charset = utf-8
server.index = 8383
server.search = 8384

[brand_id]
type = id

[brand_name]
type = title

[brand_english_name]
index = both
weight = 5
// ---------------------------------

2.服务器端通过:
util/Indexer.php --rebuild --source=mysql://root:pass@localhost/dbname --sql="SELECT * FROM tbl_post" --project=brand
导入数据表数据建立索引

3.我的代码部分:
//---------------------------------
传入搜索关键字$keyWord,品牌名(中文名、英文名),现在的问题是使用品牌中文名可以搜索得到,但输入品牌英文名搜不到。不知是我的代码问题,还是怎么回事?在文档里没有​找到解决的办法
// --------------------------------
public function query_brand($keyWord,$row=20,$jnum=0){

$xs = new XS($this->_project);
$xs->search->setFuzzy(true);
$xs->search->setAutoSynonyms();
$xs->search->setQuery($keyWord); //支持同义词搜索,默认打开
$xs->search->setLimit($row, $jnum); //设置返回结果最多为 5 条,并跳过前 10 条
$docs = $xs->search->search(); //执行搜索,将搜索结果文档保存在 $docs 数组中
$count = $xs->search->count(); //获取搜索结果的匹配总数估算值

if($count){
$data = array();
foreach ($docs as $key=>$doc){
$data[$key]['brand_id'] = $doc->brand_id;
$data[$key]['brand_name'] = $doc->brand_name;
$data[$key]['brand_english_name'] = $doc->brand_english_name;
}

return array('data'=>$data,'count'=>$count);
}
return array();
}
// --------------------------------

4.附件

[hr]
brand_name和brand_english_name 都在brand表里面
查找这个用户的全部帖子
引用并回复
发表回复 


论坛跳转:


正在浏览该主题的用户: 1 个游客