Django Wagtail弹性搜索2.4 ascii折叠

时间:2017-05-24 16:04:55

标签: django python-3.x elasticsearch wagtail

是否可以在Wagtail elasticsearch 2.4搜索后端设置ascii折叠,以便例如搜索“Nimes”会返回带有“Nîmes”索引的对象吗?

我尝试添加以下设置:

WAGTAILSEARCH_BACKENDS = {
    'default': {
        'BACKEND': 'app.search.backend',
        'URLS': ['http://search:9200'],
        'INDEX': 'wagtail',
        'TIMEOUT': 5,
        'INDEX_SETTINGS': {
            'settings': {
                'analysis': {
                    'analyzer': {
                        'ngram_analyzer': {
                            'type': 'custom',
                            'tokenizer': 'lowercase',
                            'filter': ['asciifolding', 'ngram']
                        },
                        'edgengram_analyzer': {
                            'type': 'custom',
                            'tokenizer': 'lowercase',
                            'filter': ['asciifolding', 'edgengram']
                        },
                        "folding": {
                            "tokenizer": "standard",
                            "filter": ["lowercase", "asciifolding"]
                        }
                    }
                }
            }
        }
    }
}

但它不起作用。 我在Django 1.10.7上使用Wagtail 1.9和Python 3.5.2。

1 个答案:

答案 0 :(得分:0)

我认为app.search.backend是从Elasticsearch2SearchBackend继承的?如果是这样,wagtail 1.9中ES搜索后端的默认设置已经进行了ASCII折叠。 See relevant code in wagtail