Django-haystack: ElasticSearch рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЕрдЧре░ 2012  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: django-haystack/django-haystack

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдЬрдПрдирдЧреНрд░рд╛рдо рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдЯреЛрдХрдиреЗрдЬрд╝рд░ "рд▓реЛрдЕрд░рдХреЗрд╕" рд╣реИ, рдЬреЛ рдЕрдВрдХреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдореИрдВ рдЖрдВрд╢рд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЬрд╝рд┐рдк рдХреЛрдб рдпрд╛ рдХрд░реНрдордЪрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рд╣реВрдВред

рдЯреЛрдХрдирдирд╛рдЗрдЬрд╝рд░ рдХреЛ "рдПрдЬрдПрдирдЬреАрдЧреНрд░рд╛рдо" рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ ["рдПрдЬрдПрдирдЬреАрдЧреНрд░рд╛рдо", "рд▓реЛрдЕрд░рдХреЗрд╕"] рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдореБрдЭреЗ рдЕрдХреНрд╖рд░реЛрдВ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рджреЛрдиреЛрдВ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ haystack.backends.elasticsearch_backend рдореЗрдВ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╣рд┐рд╕реНрдЯреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

:+1: рдмрд┐рдирд╛ рдордВрдХреА-рдкреИрдЪрд┐рдВрдЧ *_backend.py рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

+1

рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ рд▓реЛрдЪрджрд╛рд░ рдЦреЛрдЬ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмреИрдХрдПрдВрдб рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд╣реИрдВред рдореИрдВ рд▓реЛрдЪрджрд╛рд░ рдЦреЛрдЬ рдмреИрдХрдПрдВрдб рдХреЛ рдЙрдкрд╡рд░реНрдЧрд┐рдд рдХрд░рдХреЗ рдФрд░ DEFAULTSETTINGS рдХреЛ __init__ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрдЯрд░/рд╕реЗрдЯрд░ рд╣реЛ, рд▓реЗрдХрд┐рди рд╕рдмрдХреНрд▓рд╛рд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдирдП рдмреИрдХрдПрдВрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП settings.py рдХреЛ рднреА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ haystack/backends/elasticsearch_backend.py рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдХреЗрд╡рд▓ DEFAULT_SETTINGS рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕реНрдиреЛрдмреЙрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ NgramField рдпрд╛ EdgeNgramField рдирд╣реАрдВ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛:

1 - рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ
2 - рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ
3 - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ

рдареАрдХ рд╣реИ, рдореИрдВ рднреА рдЙрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЕрдкрдиреЗ рдЙрдкрд╡рд░реНрдЧ рдореЗрдВ, рдЖрдкрдХреЛ build_schema рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

    def build_schema(self, fields):
        # Convert all "snowball" analyzers into the DEFAULT_ANALYZER analyzer set in __init__
        content_field_name, mapping = \
            super(ElasticsearchSearchBackendSubclass, self).build_schema(fields)
        for field_name, field_mapping in mapping.items():
            if "analyzer" in field_mapping and field_mapping["analyzer"] == "snowball":
                field_mapping["analyzer"] = self.DEFAULT_ANALYZER
        return content_field_name, mapping

рдмреЗрд╢рдХ, рдЧреЗрдЯрдЯрд░ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

:+1: рдмрд┐рдирд╛ рдордВрдХреА-рдкреИрдЪрд┐рдВрдЧ *_backend.py рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕