私の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 操作を実行できますか? (各ドキュメントは 1 つの言語のみに関連付けられています)