我可以将elasticsearchdsl的IpRange子类化以供Djangoelasticsearchdsl使用吗?

2024-06-09 22:24:31 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用带有django-elasticsearch-dsl的CIDR标记ip地址的ip_范围字段类型

https://www.elastic.co/guide/en/elasticsearch/reference/current/range.html#ip-range

我尝试创建一个子类,但结果是字段映射为“type”:“text”

...
from django_elasticsearch_dsl.fields import DEDField
from elasticsearch_dsl.field import IpRange
...

class IpRangeField(DEDField, IpRange):
    """Subclass based on DedField and IpRange."""


@registry.register_document
class FeedDataDocument(Document):
    """FeedData elasticsearch."""
    ...
    ipaddress = IpRangeField()
    ...

结果:

"mappings": {
  "_doc": {
    "properties": {
      "ipaddress": {
        "type": "text"
...

Tags: djangotextfromimportiptyperangeelasticsearch
1条回答
网友
1楼 · 发布于 2024-06-09 22:24:31

我还没有看到您的所有代码,但我建议您首先确保您正确地进行了子类化(或挂钩和子类化)。逐行检查您的语法,并确保您提供的语法正确无误

如果您在Microsoft Windows系统中,您还可以(单独)获得所有打开的Windows句柄的列表,并尝试通过其中一个句柄进行子类化,以验证您是否正确进行子类化

首先使用一些简单的其他程序进行测试,以验证您是否可以读取和截获子类窗口之间的消息

然后我建议你确定你可以读取或返回一个非常简单的值。在Windows中,如果对窗口进行子类化,则可以获得子类化窗口的句柄,除非在操作系统分配窗口句柄之前对实例进行子类化(这只是稍微复杂一点)。例如,如果您在FireFox中对一个新选项卡进行子类化,那么您将得到一个预分配和未分配的窗口(我不记得它叫什么),这将是一个FireFox选项卡,FireFox稍后将很快将其合并到它的一个且只有一个窗口的句柄中,然后您将在为该选项卡分配句柄之前执行该操作。如果您在被分配到具有其他中断项的句柄后出现这种情况,那么这可能是您的问题。我在几年前就做了这件事,并让它开始工作,但我现在没有时间找到它并把它贴在这里。但是,你明白了

然后,在你在一个简单的程序上测试了你的子类,并且验证了你做的正确,并且你得到的结果正确之后,然后,也只有在测试之后,你才会知道你在这篇文章中所说的

然后,如果您无法获得所需的结果,那么django_elasticsearch_dsl似乎就是问题所在,您应该进一步研究

ps:如果你想知道为什么我发布但不回复评论:我的浏览器似乎不支持在这些堆栈溢出页面上添加评论,所以我可以发布,但我不能(直到这样做使它们的页面更向后兼容)回复或评论。而且,我昨天发现我用于此帐户的电子邮件服务器不工作

相关问题 更多 >