为wagtail elasticsearch搜索后端添加一些功能
项目描述
为wagtail elasticsearch搜索后端添加一些功能
此插件通过elasticsearch添加搜索功能。Elasticsearch提供带分数的搜索结果、分面、建议和自动完成。
特性
对不在数据库中的字段进行筛选
对不在数据库中的字段进行排序
无结果时提供搜索建议
此README远未完成且不完整,请小心。
配置
WAGTAILSEARCHEXTENSION_NUM_SUGGESTIONS:提供的建议数量
WAGTAILSEARCHEXTENSION_BOOSTED_FIELDS:要增强的字段
WAGTAILSEARCHEXTENSION_FACET_BUCKET_SIZE:允许在桶中包含多少项
WAGTAILSEARCHEXTENSION_PAGE_SIZE:一次从elasticsearch检索多少项。
WAGTAILSEARCHEXTENSION_MULTIMATCH_TYPE:如何在多匹配查询中计算分数
WAGTAILSEARCHEXTENSION_DEFAULT_OPERATOR:所有搜索词都必须出现,还是只需其中一个搜索词?(默认=or)如果要出现所有搜索词,请将其更改为and。
分面类型
可以使用get_facets类方法配置分面。这是一个字典列表,其外观必须如下所示
[ { "label": "Brand", "name": "brand", "type": "term", } ]
目前支持2种分面类型:1. term,分面被视为关键词,并按此类进行计数和匹配。2. range,分面被视为整数范围,对于类型range必须定义ranges参数。它可以用于分段范围,例如[10, 100, 100]将产生4个过滤器范围:0-9,10-99,100-999和1000+
分面排序
分面默认排序为字母数字排序({"-key", "asc"})。可以通过ocyan参数facet_bucket_size更改返回的分面数量。默认情况下只返回10个分面。如果有超过10个分面而你又不想增加分面的数量,按照出现次数排序会很有意义,这样可以选择最有用的分面。排序可以在分面定义中更改。
{ "label": "Brand", "name": "brand", "type": "term", "order": { "_count" : "desc" } }
现在将显示最受欢迎的品牌。更多信息,请参阅https://elastic.ac.cn/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#search-aggregations-bucket-terms-aggregation-order
字段增强
通过使用WAGTAILSEARCHEXTENSION_BOOSTED_FIELDS设置来执行字段相关性增强
"boosted_fields": { "upc": 888, "title": 777 }
调整映射
可以使用ELASTICSEARCH_EXTRA_SETTINGS设置覆盖/扩展Elasticsearch设置
例如
WAGTAILSEARCHEXTENSION_ELASTICSEARCH_EXTRA_SETTINGS = { 'settings': { 'analysis': { 'analyzer': { 'custom_analyzer': { 'type': 'custom', 'tokenizer': 'custom_tokenizer', 'filter': ['asciifolding', 'ngram'] } }, 'tokenizer': { 'custom_tokenizer': { 'type': 'nGram', 'min_gram': 3, 'max_gram': 15 } } } } }
项目详情
wagtail-extendedsearch-1.0.7.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d248de0e6186f0f22e8f6f3d97a67ec0437d826610488be57132f6c38e43b478 |
|
MD5 | 2a8a2939258908120c53e5d8f9f89318 |
|
BLAKE2b-256 | 5d2fdd31cdbf8f6f6b95bc03162c191840f06b4c455de53c2d3ccd58cb5cefd0 |