使用GAE搜索API是否可以搜索部分匹配项?
我正在尝试创建自动完成功能,其中该术语将是部分单词。例如。
b bui 构建
都将返回“建筑物”。
GAE怎么可能?
尽管全文搜索不支持LIKE语句(部分匹配),但是您可以修改它。
首先,为所有可能的子字符串标记数据字符串(hello = h,he,hel,lo等)
def tokenize_autocomplete(phrase): a = [] for word in phrase.split(): j = 1 while True: for i in range(len(word) - j + 1): a.append(word[i:i + j]) if j == len(word): break j += 1 return a
使用标记化的字符串构建索引+文档(搜索API)
index = search.Index(name='item_autocomplete') for item in items: # item = ndb.model name = ','.join(tokenize_autocomplete(item.name)) document = search.Document( doc_id=item.key.urlsafe(), fields=[search.TextField(name='name', value=name)]) index.put(document)
执行搜索,然后哇!
results = search.Index(name="item_autocomplete").search("name:elo")
https://code.luasoftware.com/tutorials/google-app-engine/partial-search-on- gae-with-search-api/