coreseek 问题
按照我的理解,索引会根据 sql_query 的sql 语句生成索引
sql_attr_uint = * 的不会被编入索引
sql_query_info 不知道是干嘛用的
我按照官方文档一步一步的配置完成并成功生成了索引,把测试的php 也配置上去
coreseek 配置文件
source src_movie { type = mysql sql_host = localhost sql_user = root sql_pass = root sql_db = nm.movie sql_port = 3306 # optional, default is 3306 sql_query = SELECT id, oid, UNIX_TIMESTAMP(pubdate) AS pubdated, name, ename, alias, screenwriter, imdb, introduction, actors, directors ,a,b,c,d,e,score FROM vmovie sql_attr_uint = id sql_attr_uint = oid sql_attr_uint = a sql_attr_uint = b sql_attr_uint = c sql_attr_uint = d sql_attr_uint = e sql_attr_float = score sql_attr_timestamp = pubdated sql_query_info_pre = SET NAMES utf8 sql_query_info = SELECT * FROM vmovie WHERE id=$id } index movie { source = src_movie path = /usr/local/coreseek/var/data/movie docinfo = extern charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 mlock = 0 morphology = none min_word_len = 1 html_strip = 0 } indexer { mem_limit = 128M } searchd { port = 9312 log = /usr/local/coreseek/var/log/searchd.log query_log = /usr/local/coreseek/var/log/query.log read_timeout = 5 max_children = 30 pid_file = /usr/local/coreseek/var/log/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 0 unlink_old = 1 }
得到这样的结果:发现
name, ename, alias, screenwriter, imdb, introduction, actors, directors这些字段没了???这是怎么回事??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
总比直接在数据库里like好吧
太蛋疼,这样不行不给力,我再一条条从数据库中取,真麻烦
回复
用 in 啊.where id in (x,x,x,x,x);
拿到的只是数据ID.然后你要去数据库取..
可以使用
sql_field_string =screenwriter
sql_field_string =ename
sql_field_string =name
.......
这样配置的这些字段仍然可以当作全文检索字段来使用.同时可以在结果中拿到值.
还有一个属性sql_attr_string=screenwriter如果使用这个,screenwriter字段将不参与全文检索,只是在结果中返回此字段数据.