我的elasticsearch db有一个产品索引有一个字段
internal_memory : 8gb
我需要为以下示例字符串返回此字段:
8 gb
8 gb
8gb
16 gb (will have less score obviously)
16gb (will have less score obviously)
如何为此编写自定义分析器?
我们是否应该使用nGrams进行此类搜索,因为这不是自动填充或按键搜索?
答案 0 :(得分:0)
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-tokenizer.html
你需要使用group> 0(因此,分隔符也是其中一个标记)并将数字和空格的正则表达式指定为像这样的分隔符'(\ d + | \ s +)'。不幸的是,空格也会被视为令牌,您可能需要使用令牌过滤器对其进行过滤。