[英]Search feature for Spring boot application based on Apache Solr
[英]Prefix based search in Spring boot application
我將實現一個 API,它將文本作為輸入,如下所示:
/api/tags/namePrefix?prefix=<prefix>
在這個 API 中,我將在 API 響應中返回一組鍵值對。
我不打算將數據存儲在 DB 中,而是僅存儲在應用程序 memory 中。 所以我正在考慮使用 ConcurrentHashMap 來做同樣的事情。
我了解,對於前綴搜索,Trie 可能是數據結構。 但是我沒有發現任何可以同時存儲鍵和值的 Trie 風格。
任何人都可以就相同的問題給出任何指示嗎?
Java 中沒有紅黑樹的並發實現。 但是有帶有 2 個開箱即用實現的 ConcurrentMap 接口:ConcurrentHashMap 和 ConcurrentSkipListMap。
ConcurrentMap<String, String> foo = new ConcurrentHashMap<>();
ConcurrentMap<String, String> bar = new ConcurrentSkipListMap<>();
ConcurrentHashMap 是基於線程安全的 HashMap 的結構,具有額外的性能優化。 它為 get() 和 put() 等基本操作提供了 O(1) 的恆定時間性能。
ConcurrentSkipListMap 用於需要對鍵進行排序的情況。 它為 containsKey()、get()、put() 和 remove() 操作及其變體提供 O(log(n)) 時間成本。
簡單來說,如果你不需要關心鍵的順序,你可以使用 ConcurrentHashMap 。 您可以在本文中找到更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.