Elasticsearch 特殊字符搜索

1.首先把需要使用特殊字符搜索的索引配置成不分析索引:

'item_no'=>['type'=>'string','index'=>'not_analyzed'],

2.在搜索关键词过来的时候先把关键词里面的特殊字符追加反斜杠:

reborn(API)里面已经添加了一个公用方法 - filterSpeicalCharacters() ** 这里要特别注意的一个事情就是, 如果你使用了mysql的like查询, 那这个字符替换必须要在mysql查询之前替换

用进货单查询为例子

filterSpeicalCharacters($search);// 在特殊字符前加反斜杠

$suppliers = Supplier::find()->select("supplier_id, supplier_name")->where(['or',['like','supplier_name',$search],['like','all_letter',$search],['like','linker_all_letter',$search]])->asArray()->all();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容