elasticsearch,Python,Django,elasticsearch" /> elasticsearch,Python,Django,elasticsearch" />

Python 字符过滤器未正确设置

Python 字符过滤器未正确设置,python,django,elasticsearch,Python,Django,elasticsearch,我正在弹性搜索django中设置自定义字符过滤器,但无法替换它 from elasticsearch_dsl import analyzer, tokenizer remove_leading_and_symbol_char_filter = char_filter( 'remove_leading_and_symbol', 'pattern_replace', pattern="&", replacement="") html_strip = analyzer('html_stri

我正在弹性搜索django中设置自定义字符过滤器,但无法替换它

from elasticsearch_dsl import analyzer, tokenizer

remove_leading_and_symbol_char_filter = char_filter(
'remove_leading_and_symbol', 'pattern_replace',
pattern="&",
replacement="")

html_strip = analyzer('html_strip',
tokenizer="standard",
filter=["standard", "lowercase"],
char_filter=["html_strip", remove_leading_and_symbol_char_filter]
)

当我用“and”而不是“&”查询索引时,它不会抛出任何结果

现在工作正常,我已经将该分析器添加到我要分析的目标字段中,以前我试图将该分析器绑定到所有字段,但没有成功

from django_elasticsearch_dsl import DocType, Index, fields
from elasticsearch_dsl import analyzer, tokenizer, char_filter, token_filter
from django_app.models import ex_model

posts = Index('index_name')

remove_leading_and_symbol_char_filter = char_filter(
'remove_leading_and_symbol', 'mapping',
mappings=[ "&=> and "])

html_strip = analyzer('html_strip',
tokenizer="standard",
filter=["standard", "lowercase"],
char_filter=["html_strip", remove_leading_and_symbol_char_filter]
)

posts.analyzer(html_strip)
@posts.doc_type
class ExampleDocument(DocType):

    target_field = fields.TextField(
        analyzer=html_strip,
    )
    class Meta:
        model = ex_model
        field = [
        'field_1',
        'field_2'
        ]

希望这能帮助别人

你能提供o/p设置API吗https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-settings.html 这将显示您的字符过滤器是否正确设置