這個(gè)問(wèn)題要先分成兩個(gè)方面:
- 如何取得漢字的拼音首字母
- 如何支持首字母搜索
第1點(diǎn)可以通過(guò)pinyin4j來(lái)粗略實(shí)現(xiàn)凡纳。
搜索不是無(wú)源之水阳欲,第2點(diǎn)的前提是有物可搜,也就是要有數(shù)據(jù)源贰锁。為了效率崇众,數(shù)據(jù)源并不是簡(jiǎn)單的文本文件,而是集中式的索引稿辙。建立索引的過(guò)程昆码,就是把酒從最原始數(shù)據(jù)的瓶裝到索引的新瓶里,形成鍵-值對(duì)邓深。
然后再看看怎么搜索未桥。建立索引的目的就是快速搜索,而搜索引擎應(yīng)該支持精確查找芥备,范圍查找以及模糊查找冬耿。
如果一句話(huà)的首字母都做為鍵,期望只輸入幾個(gè)字母就搜出來(lái)萌壳,那么就要用模糊查找亦镶。
需注意的問(wèn)題,中文存在多音字袱瓮,一個(gè)字的讀音需要連詞來(lái)確定缤骨。因此需要維護(hù)一張多音字表,用于匹配正確讀音尺借。
第2點(diǎn)可以通過(guò)lucene來(lái)實(shí)現(xiàn)绊起。