我已經integrated search based on the official Android documentation和 我使用SQLite的如下架構和查詢:如何用SQLite的FTS3實現模糊搜索?
CREATE VIRTUAL TABLE Search USING FTS3 (
_id,
name,
location
);
select * from Search where name MATCH ?
-- where ? is the user typed exact "query"
-- or if it doesn't have spaces or stars I append a star to search prefix: "query*"
我不知道我怎麼能延長嗎?允許以下:
說我有一些被命名的項目:
- 我的花式項目
- 我的祕密項目
- 項目#1
- 你看中的項目
當用戶在搜索框中鍵入blah
搜索結果將顯示:
my
- 我花式項目
- 我祕密項目
mfi
- 中號Ÿ˚F ancy 我 TEM
fan item
,fanit
,fit
- 我範 CY 它 EM
- 你範 CY 這 EM
it
,item
,im
,itm
- 我的幻想我て米
- 我的祕密我 TE 米
- 我て米#1
- 你看中的我て米
結果應該根據比賽有多好,例如,如果字母是更遠排名他們應該排名低於完全匹配,比如mfi
:「我的花式項目」應該排在最後,「MFI thingy」應該排在第一位(如果有這樣的項目)。
注意:我的min SDK是API級別10,其中means it has to work SQLite 3.6.22。
類似的功能,可以主要分佈在集成開發環境:
- 的Eclipse:Open Type和Open Resource
- 的IntelliJ IDEA Navigate to *
- 崇高文本Go to anything
沒有一種方法可以實現模糊搜索。你的要求太模糊,不能提出正確的答案。 – wvdz 2014-12-19 10:40:20
'* l * i * k * e * t * h * i * s *'...但我確實擔心此解決方案的效率 – Selvin 2014-12-19 10:41:17
@popovitsj用戶輸入任何內容,如果它匹配顯示的名稱的某個部分結果。 – TWiStErRob 2014-12-19 10:41:28