Ubuntu上Coreseek+php的安装

配置的部分都OK了,当然可以考虑通过上一篇文章介绍的方法直接打包成deb或者制作rpm。

python数据源脚本示意

贴过来供各位参考,注意的是返回的“字段名”必须是全小写


#!usr/bin/env python
from DBConfig import DBConfig
import MySQLdb 

class MainSource(object):

    def __init__(self, conf):
        self.conf=conf
        self.data=[]
        self.idx = 0
    def GetScheme(self): #数据结构
        return [
            ('id' , {'docid':True } ), #id 必须是正整数
            ('uid', { 'type':'text'} ),
            ('blogcontent', { 'type':'text'} ),
        ]

    def GetFieldOrder(self): #排序
        return [('id'),('uid')]

    def Connected(self): #链接

        self.TableList=DBConfig().getDBTableConfig("BlogContent")
        self.getTableData()
        pass

    def NextDocument(self): #指针进行下一行
        if (  len(self.data) > 0 ):
            item = self.data.pop()
            #item = self.data[self.idx]
            self.id = item["id"]
            self.uid = item["uid"]
            self.blogcontent = item["blogcontent"]
            self.idx += 1
            return True

        elif (len(self.TableList ) > 0):
            self.getTableData()
            return self.NextDocument()

        else:
            return False

    def getTableData(self):
        dConfig = self.TableList.pop()
        mysqlHandle=MySQLdb.connect(host=dConfig["host"], user=dConfig["user"],
                         passwd=dConfig["passwd"], db=dConfig["dbName"])

        sSQL="SELECT blogId, uid, blogContent FROM " + dConfig["tableName"]
        tableNumber = int(dConfig["tableName"][-2:], 16)
        mysqlCursor=mysqlHandle.cursor()

        mysqlCursor.execute(sSQL)

        lResultList=mysqlCursor.fetchall()
        mysqlHandle.close()

        lData=[]
        for lRow in lResultList:
            fullId = int (lRow[0]) * 1000 + tableNumber
            dRow={
                   "id":fullId,
                   "uid":lRow[1],
                   "blogcontent":lRow[2]
                }
            lData.append(dRow)

        if (len(lData) > 0 ):           
            self.data.extend(lData)

if __name__ == "__main__": 
    conf = {}
    source = MainSource(conf)
    source.Connected()

    while source.NextDocument():
        print source.blogContent
    pass

开启服务器

  1. 建立索引:
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf –all 正常情况下,你会在配置文件设置的/data/sphinx目录下看到有索引文件生成。
  2. 开启服务器:
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf  你可以netstat -an| grep 9312 是否打开
  3. 设置定期更新索引:
    coreseek的索引机制决定的他必须定期例遍全表,当然可以通过修改数据源的方式实现增量索引,然后合并索引,这样更靠谱,当然为了防止伸手党,在这里暂时不做介绍。
    crontab -e
    */15 * * * * /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf –all –rotate #15分钟索引一次 
推荐阅读:
自从Centos7/Redha
之前我们通过几个概念简单的介绍
自打从硬件方向研究性能优化起,
事出一个朋友问题:通过Dock

“Ubuntu上Coreseek+php的安装”的6个回复

  1. root@ricky-ThinkPad-T410:~/下载/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/indexer -c etc/csft.conf –all
    bash: /usr/local/coreseek/bin/indexer: 没有那个文件或目录

  2. sphinxexpr.cpp:1013:43: note: use ‘this->ExprEval’ instead
    make[2]: *** [sphinxexpr.o] 错误 1
    make[2]:正在离开目录 `/home/ricky/下载/coreseek-3.2.14/csft-3.2.14/src’
    make[1]: *** [install] 错误 2
    make[1]:正在离开目录 `/home/ricky/下载/coreseek-3.2.14/csft-3.2.14/src’
    make: *** [install-recursive] 错误 1

    这个错误怎么解决 make 通不过

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据