Laravel 弹性搜索工具 soundex

分享于2022年07月17日 elasticsearch elasticsearch-phonetic laravel 问答
【问题标题】:Laravel 弹性搜索工具 soundex(Laravel elastic search implement soundex)
【发布时间】:2022-01-14 21:22:47
【问题描述】:

我在弹性搜索中遇到了一个问题,即如果有人键入错误的拼写,它就无法搜索。我对 Soundex 做了一些研发。现在我面临在弹性搜索上实现 Soundex 的问题。请帮我这样做,我已经在弹性搜索上安装了 Phonetic Anaalysis 插件,但是如何使用弹性搜索配置插件以适用于搜索结果。

'title' => [
                    'type' => 'text',
                    'analyzer' => $language . '_analyzer',
                    'index' => true,
                    'norms' => false,
                    'term_vector' => 'with_positions_offsets',
                    'fields' => [
                        'raw' => [
                            'type' => 'keyword',
                            'normalizer' => 'lowercase_normalizer',
                            'index' => true,
                            'norms' => false,
                        ],
                    ],
                ],


【解决方案1】:

您需要使用 phonetic 令牌过滤器创建一个 custom analyzer ,并将此自定义分析器应用于您的 text field

或者,如果您想搜索错误类型的内容,您可以使用 fuzzy matches

  • 我已经对此进行了研发,但无法理解我需要在索引中的何处或其他地方添加该分析器。
  • 是的分析器设置是特定于索引的,您应该在创建索引时 set it up (如果使用它们,则在索引模板中)。
  • 我更新了现有配置的代码块。你能帮我如何在此处添加自定义分析器
  • 是的,您应该在创建索引时设置分析器。上面的链接有一些sn-ps。
  • 谢谢,@ilvar。现在问题解决了。再次感谢。