变更日志
8.14.0 (2024-06-10)
添加了
text_expansion
查询子句 (#1837)添加了
Response.search_after()
和Search.search_after()
方法,用于高效迭代 (#1829)添加了时间点支持和
Search
类中的iterate()
方法 (#1833)添加了对在
Search
类中多次切片的支持 (#1771) 添加了对Completion.suggest()
中正则表达式的支持 (#1836)修复了
Completion
类的suggest()
方法,以正确格式化请求。 (#1836)修复了
Document.update()
,使其接受设置为None
或为空的字段 (#1820)
8.13.1 (2024-04-30)
添加了对
knn
作为查询选项的支持 (#1770)使密集向量类型的
dims
属性可选 (#1776)添加了
search.knn()
方法中缺少的inner_hits
选项 (#1777)添加了对在
InnerDoc
属性中检测文档更新的支持 (#1535)更改了
_expand__to_dot
设置,以便在运行时解析 (#1633)添加了在使用不支持的
minimum_should_match
值时显示显式错误消息 (#1774)添加了
EmptySearch
类 (#1780)在
FacetedSearch
对象中添加了params
选项 (#1500)添加了对在文档更新的
script
选项中传递字典的支持 (#1560)在
AttrDict
类中添加了keys()
和items()
方法 (#1784)在
AttrList
类中添加了to_list()
方法 (#1584)添加了向量搜索示例 (#1778)
8.13.0 (2024-04-03)
8.12.0 (2024-01-18)
8.11.0 (2023-11-13)
8.9.0 (2023-09-07)
添加了 Elasticsearch 8.x 支持 (#1664)
添加了
MultiTerms
聚合 (#1543,由 @Telomeraz 贡献)添加了
CombinedFields
查询 (#1557,由 @Telomeraz 贡献)
7.4.1 (2023-03-01)
修复了 Python Elasticsearch 客户端中对
body
参数的过时用法发出的DeprecationWarnings
。
7.4.0 (2021-07-15)
添加了
ScriptScore
查询类型 (#1464)添加了
UpdateByQueryResponse.success()
方法 (#1463)添加了
return_doc_meta
参数到Document.save()
和Document.update()
,用于访问完整的 API 响应 (#1466)添加了对
calendar_interval
和fixed_interval
的支持到DateHistogramFacet
(#1467)修复了
to_dict()
应该在Search.extras
和**kwargs
上递归调用时的错误 (#1458)修复了空
Bool
查询的逆应该为MatchNone
(#1459)修复了
retry_on_conflict
和Document.update()
中的乐观并发控制之间的错误 (#1461,由 @armando1793 贡献)
7.3.0 (2020-09-16)
添加了
Intervals
、MatchBoolPrefix
、Shape
和Wrapper
查询 (#1392、#1418)添加了
Boxplot
、RareTerms
、VariableWidthHistogram
、MedianAbsoluteDeviation
、TTest
、CumulativeCardinality
、Inference
、MovingPercentiles
和Normalize
聚合 (#1416、#1418)添加了
__all__
并从elasticsearch_dsl
命名空间中删除了所有星号导入,以避免泄漏意外的名称 (#1390)修复了
Object
和Nested
可能改变内部doc_class
映射的问题 (#1255,由 @l1nd3r0th 贡献)修复了查询
SpanContaining
中的拼写错误,之前是SpanContainining
(#1418)
7.2.1 (2020-06-02)
修复了对 Search 进行切片时会导致
size
为负数而不是 0 的问题。(#1360,由 @bk-equityzen 贡献)
7.2.0 (2020-05-04)
添加了对
geotile_grid
聚合的支持 (#1350,由 @owrcasstevens 贡献)添加了
DenseVector
和SparseVector
数据类型 (#1278)添加了
SearchAsYouType
字段 (#1295,由 @dpasqualin 贡献)修复了
DoubleRange
的名称 (#1272,由 @braunsonm 贡献)
7.1.0 (2019-10-23)
Document.delete 的乐观并发控制
删除已弃用的
DocType
ES 7.x 的正确计数缓存
支持
multiplexer
token 过滤器在
FacetedSearch
中不要替换__
7.0.0 (2019-04-26)
与 Elasticsearch 7.x 兼容
Document.save()
现在返回"created"
或"updated"
放弃了对 Python 2.6、3.2 和 3.3 的支持
使用
fields
时,值不再合并到文档主体中,只能通过.meta.fields
访问
6.4.0 (2019-04-26)
Index.document
现在仅在使用默认索引时才正确设置Document
的_index
(#1091
)Document
继承允许覆盖Object
和Nested
字段元数据,如dynamic
添加
auto_date_histogram
聚合在 (反) 序列化时不要更改数据
6.3.1 (2018-12-05)
Analyzer.simulate
现在支持内置分析器对
Range
包装器的正确 (反) 序列化将
search_analyzer
添加到Completion
字段
6.3.0 (2018-11-21)
修复了定义不同
doc_type
名称的逻辑。将
retry_on_conflict
参数添加到Document.update
。即使在
Document
上未定义,现在也使用在索引上定义的字段来 (反) 序列化数据允许
Index.analyzer
构造分析器在调用
Index.analyzer
时检测分析器定义中的冲突在创建索引时检测映射冲突
将
simulate
方法添加到analyzer
对象,以使用_analyze
API 测试分析器。将
script
和script_id
选项添加到Document.update
Facet
现在可以使用除doc_count
之外的其他指标Range
对象有助于存储和处理_range
字段改进了
Index.save
的行为,使其在索引已存在时能更好地工作复合聚合现在正确地支持多个
sources
聚合由 @emarcey 实现的
UpdateByQuery
6.2.1 (2018-07-03)
允许用户在
Index
中重新定义doc_type
(#929
)直接在
elasticsearch_dsl
模块中包含DocType
(#930
)
6.2.0 (2018-07-03)
向后不兼容的更改 - DocType
重构。
在 6.2.0
中,我们重构了 DocType
类并将其重命名为 Document
。这样做的主要动机是支持从 elasticsearch 本身在 7.x
中删除类型 - 我们需要以某种方式将 Index
和 Document
类关联起来。为此,我们将之前在 class Meta
中定义的选项拆分到它和新引入的 class Index
之间。拆分是,所有与映射相关的选项(如设置 dynamic = MetaField('strict')
)保留在 class Meta
中,而所有用于索引定义的选项(如 settings
、name
或 aliases
)都移动到了新的 class Index
中。
您可以在 examples
目录中看到一些新功能的示例。文档已更新以反映新的 API。
DocType
现在只是 Document
的别名,将在 7.x
中删除。但是,它确实以新的方式工作,这并不完全向后兼容。
Percolator
字段现在期望Query
对象作为值您不能再通过指定
._id
或类似的方式访问Document
实例上的元字段。相反,所有访问都需要通过.meta
属性进行。为
FacetedSearch
实现了NestedFacet
。这需要稍微改变Facet.get_values
的语义,它现在期望整个聚合数据字典,而不仅仅是buckets
。对于重新定义该方法的自定义聚合来说,这是一个向后不兼容的更改。Document.update
现在支持refresh
关键字参数DslBase._clone
现在生成一个浅拷贝,这意味着修改现有查询可能会对现有Search
对象产生影响。空的
Search
不再默认使用match_all
查询,而是将query
键留空。这在使用suggest
时会导致向后不兼容。
6.1.0 (2018-01-09)
删除了
String
字段。修复了
Object
/Nested
反序列化问题。
6.0.1 (2018-01-02)
修复 Python 2.7 的 wheel 包问题 (#803)
6.0.0 (2018-01-01)
向后不兼容的版本,与 elasticsearch 6.0 兼容,更改包括
使用
doc
作为默认的DocType
名称,此更改包括:*DocType._doc_type.matches
方法现在用于确定应为命中使用哪个DocType
,而不是仅仅检查_type
Nested
和Object
字段重构,使用新引入的InnerDoc
类。要定义Nested
/Object
字段,只需定义InnerDoc
子类,然后在定义字段时使用它。class Comment(InnerDoc): body = Text() created_at = Date() class Blog(DocType): comments = Nested(Comment)
connections
单例上的方法现在直接在connections
模块上公开。字段值现在仅在从 elasticsearch(通过
from_es
方法)获取时才被反序列化,而不是在 python 中分配值时(无论是通过直接分配还是在__init__
中)。
5.4.0 (2017-12-06)
修复
ip_range
聚合并将其类重命名为IPRange
。Iprange
保留用于向后兼容性。修复从字典加载具有元数据的聚合时的错误。
添加对
Keyword
字段的normalizer
参数的支持。
IndexTemplate
现在可以使用与Index
相同的 API 指定。
Boolean
字段现在接受"false"
作为False
。
5.3.0 (2017-05-18)
修复常数分数查询定义。
DateHistogramFacet
现在可以使用datetime
对象。在从字典创建查询时,尊重字段名称中的
__
。
5.2.0 (2017-03-26)
确保所有响应结构都是可腌制的(用于缓存)。
将
exclude
添加到Search
。修复度量聚合反序列化。
在
Index
类上公开所有索引级 API。将
delete
添加到Search
,它调用delete_by_query
API。
5.1.0 (2017-01-08)
将
Result
和ResultMeta
分别重命名为Hit
和HitMeta
。
Response
现在存储Search
,它作为第一个参数传递给__init__
。聚合结果现在被包装在类中并被正确反序列化。
Date
字段现在允许使用 Java 格式(以毫秒为单位)的数字时间戳。添加了 API 文档。
用手动创建的类替换了生成的类。
5.0.0 (2016-11-04)
与 elasticsearch 5.0 兼容的版本。
重大更改
String
字段类型已被弃用,取而代之的是Text
和Keyword
。
fields
方法已被删除,取而代之的是source
过滤。
2.2.0 (2016-11-04)
访问缺失的字符串字段不再返回
''
,而是返回None
。修复 bool 的
|
和&
运算符以及minimum_should_match
的问题。
2.1.0 (2016-06-29)
inner_hits
现在也被包装在Response
中。
+
运算符已弃用,.query()
现在使用&
来组合查询。将
mget
方法添加到DocType
。修复了对“空”值的验证,例如
''
和[]
。
2.0.0 (2016-02-18)
与 Elasticsearch 2.x 兼容。
过滤器已被删除,并添加了额外的查询。现在可以使用
Q
而不是F
对象。
Search.filter
现在只是在过滤器上下文中添加查询的快捷方式。添加了对管道聚合的支持。
向后不兼容的更改
分析对象和类的列表已被删除,任何用作分词器、字符或标记过滤器或分析器的字符串都将被视为内置。
内部方法
Field.to_python
已重命名为deserialize
,并且添加了可选的字段序列化机制。自定义响应类现在由
response_class
方法设置,而不是Search.execute
的关键字参数。
其他更改
FacetedSearch
现在支持通过切片进行分页。
0.0.10 (2016-01-24)
现在可以迭代
Search
来获取命中结果。
Search
现在缓存来自 Elasticsearch 的响应。
DateHistogramFacet
现在默认返回空间隔。
Search
不再接受位置参数。实验性的
MultiSearch
API。添加了与
_suggest
端点通信的选项 (execute_suggest
)。
0.0.9 (2015-10-26)
FacetedSearch
现在使用自己的Facet
类,而不是内置的聚合。
0.0.8 (2015-08-28)
0.0.5
和0.0.6
在 pypi 上发布了损坏的 .tar.gz,只是一个构建修复。
0.0.5 (2015-08-27)
通过 #143 添加了对 (index/search)_analyzer 的支持,感谢 @wkiser!
即使通过
['field']
在AttrDict
上访问的键也将被包装在Attr[Dict|List]
中,以保持一致性。添加了一个方便的选项,可以指定一个自定义的
doc_class
来包装内部/嵌套文档。
blank
选项已被删除。访问空字段时不再引发
AttributeError
。将
required
标志添加到字段以及对字段和(子)文档的验证钩子。从
AttrDict
中删除了get
方法。改用getattr(d, key, default)
。添加了
FacetedSearch
,用于轻松声明式分面导航。
0.0.4 (2015-04-24)
元数据字段(如 id、parent、index、version 等)必须使用
meta
属性(在Result
和DocType
对象上)或使用它们的带下划线的变体 (_id
、_parent
等) 来存储(和检索)。Search 上的查询现在可以直接赋值。
将
suggest
方法添加到Search
。
Search.doc_type
现在直接接受DocType
子类。
Properties.property
方法已重命名为field
,以保持一致性。Date 字段现在在数据不正确时引发
ValidationException
。
0.0.3 (2015-01-23)
添加了持久层(Mapping
和 DocType
),以及各种修复和改进。
0.0.2 (2014-08-27)
修复了 Python 2 的问题。
0.0.1 (2014-08-27)
初始版本。