Google App Engine 検索を使用してテキスト検索を作成しました。
SDK では、アトム フィールドでこのようなクエリをテストしました。
u'tag:"wartości"'
本番環境では同じクエリを実行しますが、同じデータでは機能しません。
アトムフィールドでユニコードクエリを実行するにはどうすればよいですか?
Google App Engine 検索でユニコードを使用することは可能ですか?
Google App Engine 検索を使用してテキスト検索を作成しました。
SDK では、アトム フィールドでこのようなクエリをテストしました。
u'tag:"wartości"'
本番環境では同じクエリを実行しますが、同じデータでは機能しません。
アトムフィールドでユニコードクエリを実行するにはどうすればよいですか?
Google App Engine 検索でユニコードを使用することは可能ですか?
値を新しい文字列に変換AtomField
する必要があり、クエリも変換する必要があるようです。この回避策では、ポーランド語の Unicode 検索のみが許可されます。トンケン化のルールがわからないので、ポーランド語では使用されないので、'q'、'x' を使用してアルファベットを展開します。
# coding=utf-8
translate = {
u'ą': u'aq',
u'Ą': u'Aq',
u'ć': u'cq',
u'Ć': u'Cq',
u'ę': u'eq',
u'Ę': u'Eq',
u'ł': u'lq',
u'Ł': u'Lq',
u'ń': u'nq',
u'Ń': u'Nq',
u'ó': u'oq',
u'Ó': u'Oq',
u'ś': u'sq',
u'Ś': u'Sq',
u'ż': u'zx',
u'Ż': u'Zx',
u'ź': u'zq',
u'Ź': u'Zq',
}
import re
reTranslate = re.compile(u'(%s)' % u'|'.join(translate))
print reTranslate.pattern
test = u"""\
Właściwie prowadzona komunikacja wewnętrzna w firmie,\
zwłaszcza dużej czy posiadającej rozproszoną sieć oddziałów,\
może przynieść oszczędność czasu, a co za tym idzie, również pieniędzy."""
print reTranslate.sub(lambda match: translate[match.group(0)], test)