Goのメモリ内の引用符のテキストインデックス

最近、実際、文字列の先頭で検索を実装する必要がありましたWHERE name LIKE '%'交換記号(AAPL、AMZN、EUR / USDなど)の名前で検索しました。検索がすばやく機能し、データベースが再度読み込まれないようにしたかったのです。その結果、メモリ内のツリー検索の実装に到達しました。これについて説明します。

55000 ( ). . , .

. , BTree, ( , ,  , trie), — . , .

. , .

.

, , . , , : 

  • AAA (BetaShares Australian High Interest Cash ETF, ASX), 

  • AAA (All Active Asset Capital LTD, LSE).

Index.Data , Index.Data AAA.

SearchIndex.Data . , .

, .

.

  1. .

  2. .

  3. .

  4. .

  5. , , ã → a.

  6. - ().

, — , .

, Index.Data .

. — Index.Children , ( — ). , AAPL, ( ):

[A], [A], [P], [L]. , . , .

, . , . , .

.

, — . .

  1. (. ).

  2. , . 

  3. .

, AA, :

  • AAL

  • AAALF

  • AAAP

  • AAB

  • AAP

  • AAPJ

  • AAPL

  • AAPT

, AA. .

WHERE name LIKE '%'. , , .

  • “EUR”, “EUR”, “EUR/USD”, “USD/EUR”. , .

  • , . , “APL”, “APL”, “AAPL” (Apple).

  • .

“EUR”, “EUR”, “EUR/USD”, “USD/EUR”, : . , “USD/EUR”, : “usd eur”, “eur”. “Grupo Financiero Galicia SA” “Grupo Financiero Galicia SA”, “Financiero Galicia SA”, “Galicia SA”, “SA”.

, 4 .

  1. .

  2. , .

  3. , .

  4. , .

, . .

  1. SearchSymbolIndex .

  2. SearchPopularIndex (10% ).

  3. SearchInstrumentIndex .

— .

var searchedData []searchindex.SearchData

searchedData = r.SearchSymbolIndex.Search(searchindex.SearchParams{
    Text: key,
    OutputSize: outputSize,
    Matching: searchsymbol.Strict,
})

searchedData = r.SearchPopularIndex.Search(searchindex.SearchParams{
    Text: key,
    OutputSize: outputSize,
    Matching: searchsymbol.Beginning,
    StartValues: searchedData,
})

searchedData = r.SearchSymbolIndex.Search(searchindex.SearchParams{
    Text: key,
    OutputSize: outputSize,
    Matching: searchindex.Beginning,
    StartValues: searchedData,
})

searchedData = r.SearchInstrumentIndex.Search(searchindex.SearchParams{
    Text: key,
    OutputSize: outputSize,
    Matching: searchindex.Beginning,
    StartValues: searchedData,
})

StartValues — , , , , , (OutputSize).

searchindex.Strict —  . 

searchindex.Beginning — .

, . 300 . , .

, 55000 2 , . 4 100-200 ( http ), .

この検索は現在、開発者向けの財務APIで使用されていますこのページ例を表示して、実際に試すことができます。




All Articles