gpt4 book ai didi

python - 如何使用 Python elasticsearch_dsl 在分析器中包含 shingle elasticsearch 过滤器

转载 作者:行者123 更新时间:2023-12-03 02:29:10 25 4
gpt4 key购买 nike

我在 Django 应用程序中使用 Elasticsearch 进行全文搜索。我正在使用 pypi 中的 elastic_dsl 库与集群交互。我正在尝试在分析器中实现瓦状过滤器。我相信我已经让它使用默认值:

from elasticsearch_dsl import analyzer, tokenizer


main_analyzer = analyzer(
'main_analyzer',
tokenizer="standard",
filter=[
"lowercase",
"stop",
"porter_stem",
"shingle"
]
)

我想更改默认值。例如,将 max_shingle_size 设置为 5 而不是默认的 2。我找不到执行此操作的语法。我已经阅读了文档、Git 存储库中的示例以及一些源代码。

最佳答案

您需要定义一个自定义 token 过滤器并在您的自定义分析器中使用它:

from elasticsearch_dsl import analysis

main_analyzer = analysis.analyzer(
"main_analyzer",
tokenizer="standard",
filter=[
"lowercase",
"stop",
"porter_stem",
analysis.token_filter("my_shingle", "shingle", max_shingle_size=5)
]
)

关于python - 如何使用 Python elasticsearch_dsl 在分析器中包含 shingle elasticsearch 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60391655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com