在我的 python GAE 应用程序中,我允许用户使用搜索 api 查询项目,我最初在其中放入带有确切标签的文档,但考虑到需要存在的拼写更正,命中率并不高。我发现的方法是通过数据存储实现字符 ngram,因为这样可以确保用户正确输入单词的至少一部分。在数据存储上,这需要很多时间。例如,
"hello"
(被分解成)["hello", "ello", "hell", "hel", "elo", "llo", "he", "el", "ll", "lo"]
当我搜索"helo"
tags -["hel", "elo", "he", "el", "lo"]
(给出一个肯定的匹配)
我根据单词匹配的标签长度对它们进行排名。
在 Datastore 上,我必须单独索引这些中断字符 ngram 以及它们匹配的实体。并且对于每个单词以类似的方式对每个标签执行搜索。这需要很多时间。
有没有办法使用搜索 api 实现类似的操作。MatchScore 是否查看“OR”的多个字段?寻找设计搜索文档并在最少的操作中执行多个拼写更正查询的方法。
如果我在每个文档中都有多个语言字段,例如例如 -
([tags - "hello world"] [rank - 2300] [partial tags - "hel", "ell", "llo", "wor", "orl", "rld", "hell", "ello", "worl", "orld"] [english - 1] [Spanish - 0] [French - 0] [German - 0]
我可以在语言字段上执行 MatchScore 操作和排序吗?(每个文档仅与一种语言相关联)