sspat/es-query-sanitizer

一个简单的辅助类,用于从查询字符串中清除ElasticSearch保留字符

1.0.2 2018-01-22 19:50 UTC

This package is auto-updated.

Last update: 2024-09-12 05:08:00 UTC


README

灵感来自node-elasticsearch-sanitize

Author GitHub tag license

特性

接受任意字符串作为输入,并转义ElasticSearch保留字符

+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ / AND OR NOT 空格

返回一个经过清理的字符串,可以在ElasticSearch查询_string查询中安全使用。

安装

安装此扩展的首选方式是通过composer

运行以下命令之一:

composer require sspat/es-query-sanitizer

或者

"sspat/es-query-sanitizer": "~1.0"

将以下内容添加到您的composer.json文件的require部分。

使用方法

传递一个字符串

$unescapedQueryString = 'AND there! are? (lots of) char*cters 2 ^escape!'
$escapedQueryString = \sspat\ESQuerySanitizer\Sanitizer::escape($unescapedQueryString);

echo $escapedQueryString; // \A\N\D\ there\!\ are\?\ \(lots\ of\)\ char\*cters\ 2\ \^escape\!

如果需要,您还可以传递一个数组作为第二个参数,以防止某些字符被转义

$unescapedQueryString = 'AND there! are? (lots of) char*cters 2 ^escape!'
$excludeCharacters = ['!', '^'];
$escapedQueryString = \sspat\ESQuerySanitizer\Sanitizer::escape($unescapedQueryString, $excludeCharacters);

echo $escapedQueryString; // \A\N\D\ there!\ are\?\ \(lots\ of\)\ char\*cters\ 2\ ^escape!