Php Sphinx-将OR运算符与字段开始/结束修改器组合
这个表达式写对了吗?因为我没有收到预期的所有结果:Php Sphinx-将OR运算符与字段开始/结束修改器组合,php,full-text-search,sphinx,Php,Full Text Search,Sphinx,这个表达式写对了吗?因为我没有收到预期的所有结果: (@nationality_code ("^MD$" | "^GB$" | "^IT$")) 我应该让所有用户的国籍代码等于'MD'或'GB'或'IT' 应该与mysql中的查询类似: SELECT * FROM users WHERE nationality_code IN ('MD', 'GB', 'IT') 更新 如果我只搜索MD和GB,我会收到正确的结果: 我执行的查询如下: SELECT id, nationality_code
(@nationality_code ("^MD$" | "^GB$" | "^IT$"))
我应该让所有用户的国籍代码等于'MD'或'GB'或'IT'
应该与mysql中的查询类似:
SELECT * FROM users WHERE nationality_code IN ('MD', 'GB', 'IT')
更新
如果我只搜索MD和GB,我会收到正确的结果:
我执行的查询如下:
SELECT id, nationality_code
FROM jobs_applied_main
WHERE MATCH('(@nationality_code ("^MD$" | "^GB$"))') AND job_id = '6257'
LIMIT 0, 999;
但是,如果我同时添加“^IT$”,我将不再获得具有“MD”国籍的用户
如果删除“开始/结束”修改器,我会收到预期的结果,为什么会出现这种行为
更新
因此,这里是我的索引转储和sphinx.conf文件:是。这个表达是正确的。这对我来说很好:
[snikolaev@dev01 ~]$ mysql -P9314 -h0
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 2.7.1 668faae@180620 dev
Copyright (c) 2009-2017 Percona LLC and/or its affiliates
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select * from idx_min where match('(@nationality_code ("^MD$" | "^GB$" | "^IT$"))');
+------+------------------+------+
| id | nationality_code | a |
+------+------------------+------+
| 1 | MD | 123 |
| 2 | GB | 123 |
+------+------------------+------+
2 rows in set (0.00 sec)
确保你的索引中只有MD/GB/IT,之前/之后没有任何内容,并且没有min_word len<2。Sphinx 3.0.3版本存在问题,因为Sphinx 2.2.11可以正常工作谢谢,问题是我有min_word len<2。我的实际配置如下:
min\u word\u len=1 min\u infix\u len=2 min\u prefix\u len=1 expand\u keywords=1
那么什么是正确的配置?@Mintendo抱歉,我的意思是你没有min\u word\u len>2(不是<2)。在你的情况下,如果你有min_word_len=2,它应该可以正常工作。我刚刚再次检查了min_word_len=2、min_prefix_len=1和expand_keywords=1,效果很好。你的狮身人面像版本是什么?您能提供完整的配置并使用--dump行运行索引并提供文件(或其中的一部分)吗?好的,我添加问题的更新,您能检查上面的内容吗?无论如何,我的狮身人面像版本是3.0.3-dev@Mintendo在3.0.3中仍然适用于我。如果您提供配置以及如何复制索引(--dump行或仅仅是索引文件),会更容易。好的,我在WetTransfer中上传了sphinx.conf,并提供了上面的链接