django - 搜索鹡鸰图像
问题描述
我正在用 wagtail 和 elasticsearch 实现一个图像丰富的 webapp。要搜索图像,我想使用弹性搜索和 wagtail 的内置功能来索引和搜索图像。
wagtail 中的图像已标记,我想使用这些标记来查找图像。图像的索引已经开箱即用,现在我正在努力寻找它们。挑战是我想在标签中搜索文本。Wagtail 在对象管理器上提供了一个 search() 函数,可用于搜索:
images = Image.objects.search("sometag")
要限制对特定字段的搜索,可以执行以下操作:
images = Image.objects.search("sometag", fields=['title'])
现在限制定义为搜索相关字段的标签:
search_fields = CollectionMember.search_fields + [
index.SearchField('title', partial_match=True, boost=10),
index.AutocompleteField('title'),
index.FilterField('title'),
index.RelatedFields('tags', [
index.SearchField('name', partial_match=True, boost=10),
index.AutocompleteField('name'),
]),
index.FilterField('uploaded_by_user'),
]
我希望 search() 函数可以使用 'tag' 或 'tag.name' 参数:
images = Image.objects.search("sometag", fields=['tags.name'])
images = Image.objects.search("sometag", fields=['tags'])
但我只收到以下错误:
wagtail.search.backends.base.SearchFieldError: Cannot search with field "tags.name". Please add index.SearchField('tags.name') to Image.search_fields.
或者
wagtail.search.backends.base.SearchFieldError: Cannot search with field "tags". Please add index.SearchField('tags') to Image.search_fields.
如何使用fields=...
具有RelatedFields
定义的功能Images
?
解决方案
推荐阅读
- multithreading - 手动将迭代次数分配给 OpenMP 计划静态
- typescript - 在 TypeScript 中为函数使用对象文字时 Intellisene 不起作用
- maven - 在没有代码气候引擎的 gitlab 中显示 pmd 报告
- python - Seaborn 双变量 KDE 加速
- javascript - 如何使用 javascript 和 laravel 将数据传递到数据库
- gradient-descent - 对数回归损失的梯度
- angular - 如何检查和取消选中角度7中的所有复选框
- javascript - 使用 React Context 和 useReducer 防止在 todo 应用程序中重新渲染未更改的项目
- mysql - 使用 expressjs 验证器和 mysql 检查用户名和电子邮件是否已经存在
- c - C 虚拟到物理地址的映射