簡體   English   中英

Spring 引導應用程序中基於前綴的搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM