0

我想知道我得到了以下请求的不同结果:

狮身人面像QL:

SELECT ticket_id FROM message WHERE MATCH('*test*') LIMIT 0, 100000 OPTION max_matches = 100000

结果是 221 行

SQL:

SELECT * FROM `ticket_logs` WHERE message LIKE '%test%'

结果是 321 行

SphinxQL 请求应该获得与 SQL 请求相同的结果(321 行)。

顺便说一句:Sphinx 索引的代码如下:

source ticket_logs
{
    type            = mysql
    sql_host        = localhost
    sql_user        = root
    sql_pass        = 
    sql_db          = test_db
    sql_port        = 3306
    sql_query_pre   = SET NAMES utf8
}

source messages : ticket_logs
{   
    sql_query = \
        SELECT id, ticket_id, message FROM ticket_logs

    sql_field_string = ticket_id
    sql_field_string = message
}

index message
{
    source          = messages
    path            = c:/sphinx/data/index/message
}

searchd
{
    listen          = 9306:mysql41
    pid_file        = c:/sphinx/data/searchd.pid
    log             = c:/sphinx/data/log/searchd.log
    query_log       = c:/sphinx/data/log/query.log
    binlog_path     = c:/sphinx/data/binlog/
}
4

1 回答 1

2

您似乎没有min_infix_len在配置中定义

http://sphinxsearch.com/docs/current.html#conf-min-infix-len

...您需要它来显式启用“通配符”查询。

这会给你更接近的结果。

于 2017-08-18T19:03:36.760 回答