此刻,我正在使用一个简单的全文搜索,对用户键入的完整短语进行匹配/匹配。这个想法是允许用户使用以下连接器键入搜索请求:
AND, OR, NOT
"" - exact match
() - grouping terms
* - single letter wildcard
! - root expander
/n - terms within n words of each other
/s - terms within same sentence of each other
/p - terms within the same paragraph
所有这些连接器将用作布尔运算符。该任务包含两个部分:
1.解析用户键入的字符串(可能存在语法错误)
2.建立SQL查询
完全相同的搜索在这里有效-https://casetext.com/search
此外,我想知道是否可以更轻松地迁移到具有内置解析器但仍然与我所需的功能不一样的Lucena / Solr或Elasticsearch?
我已经看到了这个parsing user-typed Full Text Search queries into WHERE clause of MySQL using PHP,但没有给出任何答案
我看到了这些包裹:
https://packagist.org/packages/pecee/boolean-query-parser-支持的基本语法
https://packagist.org/packages/gdbots/query-parser-更复杂,但无法涵盖我列表中的最后4个连接器