我在我的 rails 应用程序中使用 Sunspot_solr,并将其应用于按地址搜索本地企业。
我的问题是,我如何定义“parkway”和“pkwy”在语义上是相同的,以便在街道地址中搜索“pkwy”的用户仍然返回与使用“parkway”相同的结果?
显然有许多这样的等式类型,我希望能够在某处定义一组这样的等式,以便用户在进行搜索时具有更大的灵活性。
我在我的 rails 应用程序中使用 Sunspot_solr,并将其应用于按地址搜索本地企业。
我的问题是,我如何定义“parkway”和“pkwy”在语义上是相同的,以便在街道地址中搜索“pkwy”的用户仍然返回与使用“parkway”相同的结果?
显然有许多这样的等式类型,我希望能够在某处定义一组这样的等式,以便用户在进行搜索时具有更大的灵活性。
在您的配置目录中schema.xml
,您可以添加或创建一个synonyms.txt
将单词映射到替代拼写/同义词的文件。sunspot_solr
应该已经在您的 Rails 应用程序中为您创建了此文件。
你会有这样的条目:
parkway => pkwy
在schema.xml
中,您需要在索引和/或查询步骤中添加一个SynonymFilterFactory 。
阅读上面的链接以获取更多信息。