我有一个包含大约 100 万个文档的 RavenDB 集合。这些文档中的一个字段是包含域名的字符串。我有一个业务需求,让用户通过域的子字符串进行搜索。例如,搜索“example”需要返回域字段包含 example.com、example.net 或 www.example.com 的文档。
另一种标准搜索是通过 .com 之类的域扩展名,它会返回所有 .com 域。
假设句点总是分隔搜索词是不安全的。
我正在从 MS SQL 环境中迁移出来,并试图在没有领先的通配符支持的情况下解决这个问题。我意识到 Raven 可以使用前导通配符,但这样的搜索既昂贵又缓慢。我考虑过该字段的反转版本,但这不符合要求。
NGram 分析器是我的答案吗?我怎样才能满足我的搜索要求?