我正在開發類似聊天的應用程序,並希望爲其提供搜索功能。我正在考慮使用Azure搜索。一旦有可能將每個聊天室視爲Azure搜索中的單個實體,以便每個實體代表一個聊天室。我遇到的挑戰是因爲每個聊天室不停地接收新消息,聊天室的索引不斷變化。我可以使用隊列機制來排隊更改並更新Azure搜索中的實體,但我不知道它是否是一個好的可擴展解決方案。顯然,我需要增加副本的數量以跟上更改。任何建議? Azure是否搜索適合這種情況的工具?當實體在Azure搜索中不斷變化時該怎麼辦?
0
A
回答
3
H.Z.,
我們確實有使用我們的聊天/即時消息應用程序的客戶,所以我們可能會針對您的需求是可行的。在我回答您的問題之前,您能告訴我您希望能夠搜索哪些類型的東西嗎?
它僅僅是搜索聊天室還是搜索聊天室以及聊天室內的消息?如果只是搜索聊天室,則可能需要考慮採用建議的方法,然後將聊天消息存儲在較低成本的商店(如Azure存儲)中,然後根據需要簡單地提取消息文本。
如果是後者,那麼接下來的問題是您是否希望能夠跨越聊天室和他們內部的消息進行搜索,這將表明讓他們內部的消息具有很大意義一個索引,儘管無論您是將所有郵件放在單個文檔中,還是每個郵件都有一個文檔,我們應該鑽取更多。我認爲在一個索引中包含所有消息的主要問題是在用戶想要在聊天室中鑽取(或過濾)特定消息的情況下。如果您將郵件拆分爲單獨的文檔,我認爲這可能會更難一些。
另一種選擇可能是有2個索引。一個擁有聊天室,另一個擁有其中的個人信息。
無論如何,我希望這有助於作爲一個開始,並根據您的反應,希望我可以幫助您深入細節。
利亞姆
相關問題
- 1. 當緩存和數據庫索引變得非常不同時該怎麼辦?
- 2. 當UIBarButtonItem在UINavigationBar中不可見時該怎麼辦?
- 3. 當inptr == NULL時我該怎麼辦?
- 4. 當re.findall找不到該模式時該怎麼辦
- 5. Java,lucene,搜索索引器問題該怎麼辦?
- 6. 當JavaScript中有不同的輸入數組時,該怎麼辦?
- 7. 當數據變得太大以至於web.config時該怎麼辦
- 8. 發生中斷時怎麼辦
- 9. 怎麼辦在實體框架加入
- 10. 當一個參數不起作用時該怎麼辦?
- 11. badoo.com用戶搜索 - 這個怎麼辦?
- 12. 我該怎麼辦?
- 13. NullPointerException - 該怎麼辦?
- 14. 我該怎麼辦在PHP
- 15. ECS-agent斷開連接時該怎麼辦?
- 16. 當在Ruby on Rails中找不到任何記錄時該怎麼辦
- 17. 當'修復表'查詢不能在mysql中工作時該怎麼辦?
- 18. 在Linux UNIX套接字上實時鎖定,該怎麼辦?
- 19. 錄製按鈕在UFT中不工作時該怎麼辦?
- 20. 陡峭度的變化,怎麼辦
- 21. 我該怎麼做? (WordPress的搜索引擎優化)
- 22. 當在Eclipse中調試時findViewById無法找到GUI資源時該怎麼辦
- 23. Heroku下降時該怎麼辦?
- 24. Symfony2手動部署時該怎麼辦?
- 25. rubygems.org關閉時該怎麼辦?
- 26. 缺少基礎SDK時該怎麼辦?
- 27. RemotingConfiguration.Configure失敗時該怎麼辦?
- 28. sys.stdout.encoding爲None時該怎麼辦?
- 29. 卸載rubygems-update時該怎麼辦?
- 30. HOWTO搜索不斷變化的搜尋網址
謝謝@Liam的詳細答案。事實上,搜索char間和消息是最終目標。我們首先考慮搜索聊天室並將聊天室的所有消息保存在一個實體中。因爲會有很多消息傳出,所以單個聊天室的索引應該不斷更新。對搜索服務沒有巨大影響?實現它的最佳方式是使用Service Bus類型的隊列,然後使用輔助角色更新每條消息的索引? –
我的另一個問題是關於索引器?我是否仍然可以使用索引器並對其進行自定義,以便根據需要更新索引?考慮聊天室標題或成員也可以更新的情景。 –
順便說一句,我沒有完全得到你的建議在Azure表中存儲郵件。您是否意味着將郵件存儲在永久存儲中,並使用計劃索引器將其拖至Azure搜索? –