gpt4 book ai didi

regex - 使用非法字符启用Elasticsearch索引名称

转载 作者:行者123 更新时间:2023-12-02 23:33:20 26 4
gpt4 key购买 nike

我正在尝试使用xxx/yyyxxx yyy之类的字符串创建elasticsearch索引,但由于它们包含非法字符(/),因此不允许使用这些索引。这些名称很大程度上是用户创建的,不受我的控制,因此,为了适应elasticsearch的要求而更改名称实际上不是一个选择。

这是确切的错误消息:

[Error: InvalidIndexNameException[[XXX\%FFZZZ] Invalid index name [XXX\%FFZZZ], must not contain the following characters [\, /, *, ?, ", <, >, |,  , ,]]]

无论如何,我已经尝试对字符串进行URL编码,但这是行不通的,因为其中包含不允许使用的大写字母,并且由于在非法字符列表中,反斜杠转义是不可能的。

是否有解决此问题的常规方法,还是我必须提出一些粗略的序列化和/或哈希方案来解决此问题?

最佳答案

嗯,让用户可以控制诸如索引名之类的事情正在引起麻烦:)

但是,如果您愿意走这条路,我建议您只是删除所有不是字母数字的字符,并在处理过程中将结果小写。

在PHP中将是:

$index = preg_replace("/[^a-z0-9]+/i", "", $index);

在Java中:
index = index.replace("/[^a-z0-9]+/i", "");

用Javascript:
index = index.replace(/[^a-z0-9]+/i, "");

关于regex - 使用非法字符启用Elasticsearch索引名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34079644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com