Python 字符过滤器未正确设置
我正在弹性搜索django中设置自定义字符过滤器,但无法替换它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
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 这将显示您的字符过滤器是否正确设置