django dsl drf排除短语查询

idv4meu8  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(350)

我正在将ElasticSearch集成到我现有的django rest应用程序中。我正在使用以下链接中提供的django dsl drf模块:
https://django-elasticsearch-dsl-drf.readthedocs.io/
在他们的文档中提供了“exclude”查询参数。但只有当我们提供完整的字段值时,查询才有效。
搜索url?排除=<字段值
例如:如果我在字段“name”中有一个值“stackoverflow”。我必须提供查询参数a?name\uu exclude=stackoverflow,以排除结果中名称为“stackoverflow”的记录。我希望以这样一种方式实现搜索:当我提供“over”时,我需要排除这些记录,类似于?name\uu exclude=over
我查了上面的教程,但找不到。是否有任何解决方法,使我可以排除记录,字段中包含的条款,而不是提供完整的字段值,这也是不区分大小写。
谢谢。

bvjveswy

bvjveswy1#

使用 contains 函数过滤器,可以将其名称字段值包含字符的文档作为目标 over 在任何地方:

?name__contains=over

然而,据我所知,在django dsl drf中没有办法否定这个过滤器。不过,您可以创建一个请求该功能的问题,因为您不是唯一需要该功能的人的可能性很高,因为这是一种非常常见的搜索方式。

相关问题