1

我的弹性搜索数据库有一个产品索引有一个字段

internal_memory : 8gb

我需要为以下示例字符串返回此字段:

8 gb
 8 gb
8gb
16 gb (will have less score obviously)
16gb (will have less score obviously)

我该如何为此编写自定义分析器?

我们是否应该使用 nGrams 进行此类搜索,因为这不是自动完成或每次按键搜索?

4

1 回答 1

0

https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-tokenizer.html

您需要使用 group>0 (因此,分隔符也是标记之一)并将数字和空格的正则表达式指定为像这样的分隔符 '(\d+|\s+)'。不幸的是,空格也将被视为令牌,您可能需要使用令牌过滤器将它们过滤掉。

于 2016-06-20T21:36:06.913 回答