【发布时间】:2015-08-29 11:41:54
【问题描述】:
我将 Django Haystack 与 Elasticsearch 一起使用。我有一个名为“code”的字符串字段,格式如下:
76-010
我希望能够搜索
76-
得到结果
76-111
76-110
76-210
...
等等。
但我不想得到这些结果:
11-760
11-076
...
我已经有一个自定义的弹性搜索后端,但我不确定我应该如何索引它以获得所需的行为。
class ConfigurableElasticBackend(ElasticsearchSearchBackend):
def __init__(self, connection_alias, **connection_options):
# see http://stackoverflow.com/questions/13636419/elasticsearch-edgengrams-and-numbers
self.DEFAULT_SETTINGS['settings']['analysis']['analyzer']['edgengram_analyzer']['tokenizer'] = 'standard'
self.DEFAULT_SETTINGS['settings']['analysis']['analyzer']['edgengram_analyzer']['filter'].append('lowercase')
super(ConfigurableElasticBackend, self).__init__(connection_alias, **connection_options)
【问题讨论】:
-
你见过this article吗,因为它显示的内容几乎就是你所需要的。
标签: django elasticsearch django-haystack