我最近一直在使用elastisearch槽elastica,但是在使用正则表达式时遇到了问题。
这是我的问题:
我需要找到我的所有带有“名称”的“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
希望这可以帮助!