Is it possible to do a 'NOT IN' syntax. For example:
{"Persons" :[{"Name":"Matthew"},{"Name":"John"}]}
Select * from Persons where Name!=John
So essentially select all records that don't have John in Persons.
答案 0 :(得分:3)
首先注意:你应该总是将Algolia与数据库结合使用,搜索引擎在数据库引擎应该处理的一些操作上做得很差。
使用Algolia facet排除,它绝对可行:
的文档通过 - 运算符支持否定,为构面值加前缀 例如:
\n
对于您的示例,假设“名称”是attributesForFaceting
的一部分,您要执行的查询只是:
<?php
$text = '<p></p><p></p>';
$dom = new \DOMDocument();
$dom->loadHTML($text);
$innerHTML = "";
foreach ($dom->getElementsByTagName('body')->item(0)->childNodes as $child) {
$innerHTML .= $dom->saveHTML($child);
}
echo json_encode($innerHTML);
如果您使用的是algoliasearch-helper-js
,则使用的方法是addExcludeRefinement
。
最后,值得注意的是,如果您的属性是数字,则应使用numericFilters
代替。