Coreseek®  
 | 首页 | 注册 | 回复 | 搜索 | 统计资料 |                 网站首页产品服务开放源码安装使用常见问题中文手册社区交流联系我们 
站务公告 论坛首页 / 站务公告 /

【召集令】Coreseek/Sphinx运行常见问题和回答--整理收集专用帖

 Page:  ««  1  2  3  4  5  6  »» 
hpliu2729
会员
#61 | 发表时间: 2013 01 24 01:54 | 修改: hpliu2729
回复 
hpliu2729:
乔帮主,我的数据源修改了,比如将id部分从1234修改成12345,
<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset>

<sphinx:schema>
<sphinx:field name="content"/>
</sphinx:schema>

<sphinx:document id="12345">
<content>abcde</content>
</sphinx:document>

<sphinx:document id="34567">
<content>fg123</content>
</sphinx:document>

<sphinx:document id="56789">
<content>hijklmn</content>
</sphinx:document>

</sphinx:docset>

之后我执行了mmseg和indexer进行分词重建索引,但查到的数据还是1234,
是重建索引失败了吗?

以下是我的执行顺序:

启动searchd
/usr/local/services/coreseek/bin/searchd -c etc/csft.conf

如果数据源发生了改变需要重新索引,使用下面的命令
/usr/local/services/mmseg3/bin/mmseg   -d  /usr/local/services/mmseg3/etc/   var/test/users.xml
/usr/local/services/coreseek/bin/indexer   -c  etc/csft.conf    --all   --rotate
--rotate可以在searchd服务不重启的情况下重新索引,否则会报错
hpliu2729
会员
#62 | 发表时间: 2013 01 24 10:12
回复 
hpliu2729:
hpliu2729:
乔帮主,我的数据源修改了,比如将id部分从1234修改成12345,
<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset>

<sphinx:schema>
<sphinx:field name="content"/>
</sphinx:schema>

<sphinx:document id="12345">
<content>abcde</content>
</sphinx:document>

<sphinx:document id="34567">
<content>fg123</content>
</sphinx:document>

<sphinx:document id="56789">
<content>hijklmn</content>
</sphinx:document>

</sphinx:docset>

之后我执行了mmseg和indexer进行分词重建索引,但查到的数据还是1234,
是重建索引失败了吗?

以下是我的执行顺序:

启动searchd
/usr/local/services/coreseek/bin/searchd -c etc/csft.conf

如果数据源发生了改变需要重新索引,使用下面的命令
/usr/local/services/mmseg3/bin/mmseg   -d  /usr/local/services/mmseg3/etc/   var/test/users.xml
/usr/local/services/coreseek/bin/indexer   -c  etc/csft.conf    --all   --rotate
--rotate可以在searchd服务不重启的情况下重新索引,否则会报错

跟踪发现新生成的/data/xml文件后缀都变成了
xml.new.spa  xml.new.spd  xml.new.sph  xml.new.spi  xml.new.spk  xml.new.spm  xml.new.spp
乔老大帮我看下,我自己也看下源码
hpliu2729
会员
#63 | 发表时间: 2013 01 24 11:19
回复 
hpliu2729:
hpliu2729:
hpliu2729:
乔帮主,我的数据源修改了,比如将id部分从1234修改成12345,
<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset>

<sphinx:schema>
<sphinx:field name="content"/>
</sphinx:schema>

<sphinx:document id="12345">
<content>abcde</content>
</sphinx:document>

<sphinx:document id="34567">
<content>fg123</content>
</sphinx:document>

<sphinx:document id="56789">
<content>hijklmn</content>
</sphinx:document>

</sphinx:docset>

之后我执行了mmseg和indexer进行分词重建索引,但查到的数据还是1234,
是重建索引失败了吗?

以下是我的执行顺序:

启动searchd
/usr/local/services/coreseek/bin/searchd -c etc/csft.conf

如果数据源发生了改变需要重新索引,使用下面的命令
/usr/local/services/mmseg3/bin/mmseg   -d  /usr/local/services/mmseg3/etc/   var/test/users.xml
/usr/local/services/coreseek/bin/indexer   -c  etc/csft.conf    --all   --rotate
--rotate可以在searchd服务不重启的情况下重新索引,否则会报错

跟踪发现新生成的/data/xml文件后缀都变成了
xml.new.spa  xml.new.spd  xml.new.sph  xml.new.spi  xml.new.spk  xml.new.spm  xml.new.spp
乔老大帮我看下,我自己也看下源码

好吧,从源码里找到原因了,一个是因为使用了rotate,一个是因为在启动服务的时候使用了etc/csft.conf相对路径,这两个因素相互影响,只改了其中一个还不行。
首先先拿掉rotate重建索引,使xml文件都能正常起来,否则服务无法正常读取相应的文件
接着必须在启动的时候使用绝对路径,以便服务能找到相应的重建索引之后的xml所在的位置
之后加上rotate重建索引
hpliu2729
会员
#64 | 发表时间: 2013 01 24 18:06
回复 
乔帮主,求助!

有一个新的疑问,
数据源:
<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset>
<sphinx:schema>
<sphinx:field name="subject"/>
<sphinx:field name="content"/>
<sphinx:attr name="published" type="timestamp"/>
</sphinx:schema>

<sphinx:document id="10000">
<subject>0b27da61527cc48f9959c2807d528e7890</subject>
<content>附近的人民群众</content>
<published>1350032911</published>
</sphinx:document>
</sphinx:docset>

php客户端:
$cl = new SphinxClient ();
$cl->SetServer ( '192.168.1.102', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ( '附近的', "*" );
print_r($res);

输出:
Array
(
    [error] =>
    [warning] =>
    [status] => 0
    [fields] => Array
        (
            [0] => subject
            [1] => content
        )

    [attrs] => Array
        (
            [published] => 2
        )

    [matches] => Array
        (
            [0] => Array
                (
                    [id] => 10000
                    [weight] => 6
                    [attrs] => Array
                        (
                            [published] => 1350032911
                        )

                )

        )

    [total] => 1
    [total_found] => 1
    [time] => 0.012
    [words] => Array
        (
            [附近] => Array
                (
                    [docs] => 1
                    [hits] => 1
                )

            [的] => Array
                (
                    [docs] => 1
                    [hits] => 1
                )

        )
)

问题:
已经匹配到这一个节点,我如何才能拿到节点中的
<subject>0b27da61527cc48f9959c2807d528e7890</subject>
<content>附近的人民群众</content>
这两项?
hpliu2729
会员
#65 | 发表时间: 2013 01 24 18:08
回复 
乔老大最近都不在线,有其它兄弟知道的请回复下,感激不尽
hpliu2729
会员
#66 | 发表时间: 2013 01 24 18:24
回复 
hpliu2729:
乔帮主,求助!

有一个新的疑问,
数据源:
<?xml version="1.0" encoding="utf-8"?>
<sphinx:docset>
<sphinx:schema>
<sphinx:field name="subject"/>
<sphinx:field name="content"/>
<sphinx:attr name="published" type="timestamp"/>
</sphinx:schema>

<sphinx:document id="10000">
<subject>0b27da61527cc48f9959c2807d528e7890</subject>
<content>附近的人民群众</content>
<published>1350032911</published>
</sphinx:document>
</sphinx:docset>

php客户端:
$cl = new SphinxClient ();
$cl->SetServer ( '192.168.1.102', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ( '附近的', "*" );
print_r($res);

输出:
Array
(
    [error] =>
    [warning] =>
    [status] => 0
    [fields] => Array
        (
            [0] => subject
            [1] => content
        )

    [attrs] => Array
        (
            [published] => 2
        )

    [matches] => Array
        (
            [0] => Array
                (
                    [id] => 10000
                    [weight] => 6
                    [attrs] => Array
                        (
                            [published] => 1350032911
                        )

                )

        )

    [total] => 1
    [total_found] => 1
    [time] => 0.012
    [words] => Array
        (
            [附近] => Array
                (
                    [docs] => 1
                    [hits] => 1
                )

            [的] => Array
                (
                    [docs] => 1
                    [hits] => 1
                )

        )
)

问题:
已经匹配到这一个节点,我如何才能拿到节点中的
<subject>0b27da61527cc48f9959c2807d528e7890</subject>
<content>附近的人民群众</content>
这两项?

好吧,估计matches就是返回的结果,要根据这个结果里的id去查db。
如果id不是整型的,那就杯具了。
只支持整型的id这个应用范围窄了点吧,php中的id为了避免遇到php整型陷阱,很多项目都用的是字符串
liuguo
会员
#67 | 发表时间: 2013 06 15 17:26
回复 
sphinxSE在centos64位系统上加入到mysql不能成功,哪位大虾能我帮助?
liuguo
会员
#68 | 发表时间: 2013 06 15 17:27
回复 
sphinxSE在centos64位系统上加入到mysql不能成功,哪位大虾能我帮助?
yftyzs
会员
#69 | 发表时间: 2013 12 27 11:49
回复 
请问4.1版本支持64位系统吗
csadmin99
管理员
#70 | 发表时间: 2013 12 27 15:21
回复 
yftyzs:
请问4.1版本支持64位系统吗

那是必须的
xzdstc
会员
#71 | 发表时间: 2014 04 03 14:15
回复 
coreseek4.1中到csft-4.1 中没有configure文件,执行sh buildconf.sh后依然没有
ruchal
会员
#72 | 发表时间: 2014 05 10 13:04 | 修改: ruchal
回复 
coreseek-4.1实时索引总报ERROR 2013 (HY000): Lost connection to MySQL server during query,使用mysql+php测试用例也是,下面直接使用mysql也是,请帮助看下什么原因,谢谢!

mysql> show tables;
+---------+------+
| Index   | Type |
+---------+------+
| rtindex | rt   |
+---------+------+
1 row in set (0.00 sec)

mysql> desc rtindex;
+------------+-----------+
| Field      | Type      |
+------------+-----------+
| id         | integer   |
| title      | field     |
| content    | field     |
| groupid    | uint      |
| biguid     | bigint    |
| score      | float     |
| date_added | timestamp |
| author     | string    |
| title      | string    |
| content    | string    |
+------------+-----------+
10 rows in set (0.00 sec)

mysql> insert into rtindex(id,title,content,groupid,biguid,score,date_added,author) values(1,'hello','hello content',1,100,12.4,13623538800,'ruchal');
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
mysql>
sphinx_new
会员
#73 | 发表时间: 2014 05 19 12:04
回复 
sphinx 出现一些无返回结果的查询,并且在searchd.log中出现大量的:
WARNING: send() failed: 32: Broken pipe
WARNING: send() failed: 32: Broken pipe
WARNING: send() failed: 32: Broken pipe
WARNING: send() failed: 32: Broken pipe
我的searchd配置如下:
searchd
{
    listen                = 9312
    listen                = 9306:mysql41
    log                    = /home/dicl/sphinx/var/log/searchd.log
    query_log            = /home/dicl/sphinx/var/log/query.log
    read_timeout        = 5
    client_timeout        = 1500
    max_children            = 50
    persistent_connections_limit    = 30
    pid_file            = /home/dicl/sphinx/var/log/searchd.pid
    max_matches            = 1000
    seamless_rotate     = 1
    preopen_indexes        = 0
    unlink_old            = 1
    mva_updates_pool    = 1M
    max_packet_size        = 8M
    max_filters            = 256
    max_filter_values        = 4096
    max_batch_queries        = 32
    workers                = threads # for RT to work
    dist_threads            = 2
}
想请教一下,为什么会这样?谢谢。
julianwang
会员
#74 | 发表时间: 2014 07 02 22:57
回复 
用命令行测试没问题,可是用以下代码就没有返回了,请大侠帮忙看看
<?php
echo "<pre />";
#引入接口文件,其实你懂的,就是一个类
require_once('sphinxapi.php');
if(isset($_POST['sub']) && $_POST['keyword'] != ''){
    $keyword = trim($_POST['keyword']);    //接收关键词
  
    $sph = new SphinxClient();            //实例化 sphinx 对象
    $sph->SetServer('localhost',9312);    //连接9312端口
    $sph->SetMatchMode(SPH_MATCH_ANY);    //设置匹配方式
    $sph->SetSortMode(SPH_SORT_RELEVANCE);    //查询结果根据相似度排序
    $sph->SetArrayResult(true);                //设置结果返回格式,true以数组,false以PHP hash格式返回,默认为false
      
    $result = $sph->query($keyword, 'dede');//执行搜索操作,参数(关键词,索引名)
    print_r($result);
}
kavir
会员
#75 | 发表时间: 2014 08 26 14:50
回复 
在默认词典最后添加了一个词(龙龟),utf-8编码保存。
令人心悸    1
x:1
龙龟    1
x:1

重新编译词典,没报错。

试了下“龙龟”已生效,但是有些词会让分词core掉,用自带的词典不会core掉。
可以稳定复现。
 Page:  ««  1  2  3  4  5  6  »» 
回复
Bold Style  Italic Style  Image 链接  URL 链接 
发帖注意:
  • 网址中请去掉http://开头,例如:您需要输入www.coreseek.cn,而不是http://www.coreseek.cn
  • 咨询问题,请贴出详细的操作系统版本、Coreseek版本(Linux环境请给出编译参数)
  • 请仔细查看中文手册和本站安装指南,确认操作正确
  • 请仔细查看常见问题解答,也许你的问题已经有解决方法

» 帐号  » 密码 
发帖前请登陆, 或者 注册 .