SphinxQL 请求类似于 SQL 中的 LIKE
SphinxQL request similar to LIKE in SQL
我想知道我得到了以下请求的不同结果:
SphinxQL:
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/
}
您似乎没有在配置中定义 min_infix_len
http://sphinxsearch.com/docs/current.html#conf-min-infix-len
...您需要它来显式启用 'wildcard' 查询。
这会给你更接近的结果。
我想知道我得到了以下请求的不同结果:
SphinxQL:
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/
}
您似乎没有在配置中定义 min_infix_len
http://sphinxsearch.com/docs/current.html#conf-min-infix-len
...您需要它来显式启用 'wildcard' 查询。
这会给你更接近的结果。