Vor kurzem musste ich tatsĂ€chlich eine Suche am Anfang eines Strings implementieren WHERE name LIKE '%'. Es war eine Suche nach den Namen der Austauschsymbole (AAPL, AMZN, EUR / USD usw.). Ich wollte, dass die Suche schnell funktioniert und die Datenbank nicht erneut geladen wird. Infolgedessen bin ich zur Implementierung der Baumsuche im Speicher gekommen, und ich werde Ihnen darĂŒber erzĂ€hlen.
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 . , .
, .
.
.
.
.
.
, , ĂŁ â a.
- ().
, â , .
, Index.Data .
. â Index.Children , ( â ). , AAPL, ( ):
[A], [A], [P], [L]. , . , .
, . , . , .
.
, â . .
(. ).
, .
.
, 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 .
.
, .
, .
, .
, . .
SearchSymbolIndex.SearchPopularIndex(10% ).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 ), .
Diese Suche wird derzeit in der Finanz-API fĂŒr Entwickler verwendet. Ein Beispiel finden Sie auf dieser Seite, auf der Sie es live ausprobieren können.