tar*_*inf 4 django elasticsearch elasticsearch-dsl-py
我用过elasticsearch-dsl==5.2.0,elasticsearch==5.3.0和Django==1.8.15。
Django模型:
class Item(models.Model):
price = models.DecimalField(default=0)
def to_search(self):
return DocItem(
meta={'id': self.id},
price=self.price
)
Run Code Online (Sandbox Code Playgroud)
DocType类:
class DocItem(DocType):
price = Integer()
Run Code Online (Sandbox Code Playgroud)
FacetedSearch类:
class ItemSearch(FacetedSearch):
index = 'item'
doc_types = [DocItem, ]
fields = ['price']
Run Code Online (Sandbox Code Playgroud)
当我需要使用搜索所有项目时price == 5.0,执行下一个操作:
search = ItemSearch().search()
result = search.filter('match', price=5.0).execute()
Run Code Online (Sandbox Code Playgroud)
问题:
如何搜索价格范围为1.0 <价格<= 5.0的所有项目?
您可以这样做:
search = ItemSearch().search()
result = search.filter('range', price={'gt': 1, 'lte': 5.0}).execute()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |