我構建了一個數據庫,我希望能夠使用GAE中的Search API進行搜索。我點擊了Google上關於API的教程,但我缺少的一件事是如何將數據存儲類型轉換爲「文檔」。有什麼好的教程嗎?謝謝如何在我的GAE數據存儲上實現搜索API?
2
A
回答
3
db.Model ndb.Model不能轉換爲search.Document。
爲什麼?因爲它沒有太多的價值。
我給你一些例子 - 你有字符串「這-是黑標籤」在db.StringProperty()如何將它轉換:
- 你可以使用它作爲原子 - 所以比賽將是如果完全匹配
- 您可以將其用作字符串 - 因此它會被分成'this','is','black','tag',而不是標記爲't','th','thi','this 」 ...
- 您可以決定是不可見的,因爲在搜索忍不住給虛假點擊
您需要自己設計搜索功能,它應該是手動設計,即答案。
你只需要:
- 創建search.Document
- 添加字段
- 添加文檔索引
閱讀參考:https://developers.google.com/appengine/docs/python/search/documentclass
0
不幸的是,這是不可能的。
看看索引構造函數(python),我們可以確定在早期階段實現了一些嘗試,但它從未真正起作用。指定索引的來源現在已經被棄用了一段時間,並且不再工作。
這裏的構造是pydoc:(?)
class Index(object):
[...]
def __init__(self, name, namespace=None, source=SEARCH):
"""Initializer.
Args:
name: The name of the index. An index name must be a visible printable
ASCII string not starting with '!'. Whitespace characters are excluded.
namespace: The namespace of the index name. If not set, then the current
namespace is used.
source: Deprecated as of 1.7.6. The source of
the index:
SEARCH - The Index was created by adding documents throught this
search API.
DATASTORE - The Index was created as a side-effect of putting entities
into Datastore.
CLOUD_STORAGE - The Index was created as a side-effect of adding
objects into a Cloud Storage bucket.
[...]
"""
因此,至少就目前而言,唯一的解決辦法,就像Tim Hoffman提到的,是從你的數據存儲的數據分別處理您的文件和索引。
您仍然可以向https://code.google.com/p/googleappengine/issues/list提交功能請求,並在那裏發送。
0
我有成千上萬的實體,我想建立一個索引,然後使用mapreduce爲我的實體構建索引,並且可以通過搜索API進行搜索。 MapReduce的工作是
- name: buildindex
mapper:
input_reader: mapreduce.input_readers.DatastoreInputReader
handler: main.buildindex
params:
- name: entity_kind
default: main.Article
功能
def buildindex(entity):
try:
doc = search.Document(doc_id=str(entity.key()), fields=[
search.TextField(name='title', value=entity.title),
search.TextField(name='text', value=entity.text),
])
search.Index(name='myIndex').put(doc)
except Exception, e:
logging.exception('Mapreduce has exception:%s' % str(e))
相關問題
- 1. 搜索GAE數據存儲屬性
- 2. 將GAE搜索API與數據存儲集成
- 3. Appengine搜索API vs數據存儲
- 4. 如何使存儲的S3存儲桶數據在marklogic中搜索8 REST API
- 5. 如何檢查gae數據存儲中是否存在實體?
- 6. 如何在GAE JDO實現類似的搜索的3
- 7. 如何在Google數據存儲中有效地搜索實體
- 8. 如何在我的數據庫中實現「搜索」?
- 9. GAE搜索API現在支持部分搜索
- 10. GAE低級Java數據存儲API
- 11. 數據存儲API和GAE/PHP
- 12. 在GAE數據存儲
- 13. 在GAE數據存儲
- 14. 按索引查詢GAE數據存儲
- 15. GAE數據存儲索引未創建
- 16. 如何在jqgrid上實現搜索?
- 17. GAE - 爪哇 - 數據存儲實體
- 18. GAE數據存儲實體關係
- 19. 搜索blob存儲數據
- 20. 如何在存儲在Azure存儲上的視頻中搜索
- 21. 如何在php中爲GAE數據存儲生成實體ID?
- 22. GAE呈現「無」,但我可以在數據存儲查看器中看到數據存儲實體
- 23. 數據存儲在本地主機上,但不在gae數據存儲上?
- 24. 搜索存儲在樹中的數據
- 25. 如何在GAE數據存儲區中正確保存數據?
- 26. DDD - 如何實現高性能的存儲庫搜索
- 27. 通過密鑰從GAE數據存儲檢索實體
- 28. 在GAE上保存數據:日誌與數據存儲
- 29. 如何在couchdb/NoSQL數據存儲上實現IMAP服務器?
- 30. 如何在GAE上使用數據存儲區遊標與jpa
編寫的代碼拷貝屬性值從數據存儲實體到搜索API文檔。 –