我最近一直在使用elastisearchelastica,但是在使用正则表达式时遇到了问题。

这是我的问题:

我需要找到我的所有带有“名称”的“Foo”实体实例,而不是以字母开头。

class Foo
{
    protected $name; // example: "1&1", "OVH", "Aliyun" ...
}

根据elasticsearch文档,有一个“regexp” filter,但是我在elastica中找不到实现。

我努力了:
\Elastica\Query\Prefix(); //Apparently it doesn't handle the regexp

从文档中我可以得到:
$reg = '@&~(foo.+)'; # anything except string beginning with "foo"

基本上我无法从Elastica中找到应该使用哪种类型的查询类。

谢谢你的帮助 !

最佳答案

我不知道Elastica,但是quick search指向我实现了Regexp的唯一类:

\Elastica\Filter\Regexp

并在测试用例中使用它的一个示例:

Elastica\test\lib\Elastica\Test\Filter\RegexpTest

希望这可以帮助!

08-28 13:55