如何解决我可以将 elasticsearch-dsl 的 IpRange 子类化以供 django-elasticsearch-dsl 使用吗?
如何将 ip_range 字段类型用于带有 django-elasticsearch-dsl 的 CIDR 标记的 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"
...
解决方法
我还没有看到您的所有代码,但我建议您首先确保您正确地进行了子类化(或挂钩和子类化)。逐行检查您的语法并确保您提供正确的语法。
如果您使用的是 Microsoft Windows 系统,您可能(单独)还可以获得所有打开的窗口句柄的列表,并尝试通过这些句柄之一进行子类化,以验证您是否正确地进行了子类化。
首先使用一些简单的其他程序进行测试,以验证您是否可以从子类窗口读取和拦截消息。
然后我建议您确保您可以读取或从子类化一个非常简单的值中返回。在 Windows 中,如果您子类化一个窗口,那么您可以获得子类化的那个窗口的句柄,除非您在操作系统分配窗口句柄之前子类化一个实例(这只是稍微复杂一点)。例如,如果您在 FireFox 中对新选项卡进行子类化,那么您将获得一个预先和未分配的窗口(我不记得它叫什么),它是一个 FireFox 选项卡,FireFox 稍后将很快将其合并到它的一个且只有一个 Window 的句柄,那么您将在分配给该选项卡的句柄之前执行此操作。如果您在被分配到其他中断项目的句柄后遇到这种情况,那么这可能是您的问题。几年前我做了这个并让它工作,但我现在没有时间找到它并在这里发布它。但是,你懂的。
然后,在您在一个简单的程序上测试您的子类化并验证您正确执行并正确获得结果之后,然后并且只有在测试您在本文中谈论的内容之后。
那么,如果你不能得到想要的结果,看起来 django_elasticsearch_dsl 是问题所在,你应该多研究一下。
ps:如果您想知道为什么我发帖但不回复评论:我的浏览器似乎不支持这些 Stack Overflow 页面上的“添加评论”,所以我可以发帖但我不能(直到 SO他们的页面向后兼容对我来说足够了)除此之外的回复或评论。而且,我昨天发现我一直用于此帐户的电子邮件服务器无法正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。