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