如何快速匹配字符串(短语)与HashMap值?

D.Q*_*.Q. 3 java algorithm data-structures

我有一个HashMap,其键是id,其值是文本:

HashMap<String,String> textMap = new HashMap<String,String>();
textMap.put("id_1","She");
textMap.put("id_2","has");
textMap.put("id_3","a"); 
textMap.put("id_4","neck");
textMap.put("id_5","pain");
//.. more elements in textMap
Run Code Online (Sandbox Code Playgroud)

我想找到一个短语的相关id,比如'颈部疼痛',所以在这种情况下,结果应该是id_4和id_5.

任何人都可以建议一个有效的算法来匹配短语与ids?

对不起,我忘了包含一个重要的条件.我有短语和单词的偏移量,比如"start_5_end_14",这意味着5应该是"颈部"的开始,因为"她"的开头为0.但是,使情况复杂化的是偏移可能不正确.

ars*_*jii 5

保持一个反转的地图,在其中将单词映射到id.然后,遍历您的短语并在短语中调用reversedTextMap.get(word)每个word短语.