title: Indexed databases in Random Access Memory
body: <p><br>
  I'm currently writing a small test web application for a jobs search system.
  I have a table <b>Vacancies</b> (the main table to talk about).
  I need to make a rapid AJAX update of vacancies <b>(in a suggest list below input control)</b> matched to a user query. Different DBMS provide powerful programming extensions like <b>Free Text Search</b> in Microsoft SQL Server .. but I think that scanning a physical file takes plenty of time. And my idea is based on transfering the whole table <b>Vacancies</b> into RAM, so it, in my view, makes sense since in this case data retrieving demands less time. 
  So if a client types in a textbox something like "pro" - the suggest list shows up with suggestions:
         <pre>
          -product manager 
          -professional designer 
          -programmer 
          -programmer C#
          -programmer Java
          -property administrator
          -provision expert
         </pre>
  when a user types another letter "g", the value of a textbox widens to <b>"prog"</b>
  and the list is refreshed:
          <pre>
          -programmer 
          -programmer C#
          -programmer Java
          </pre>
  To make that possible I plan to create a tree index with saved values in nodes, where a <b>vacancy prefix</b> will play a role of the <b>index key</b> and node values are the <b>vacancy</b> names. The index is built and populated only <b>once</b> with data from a data table. See what I mean below: <br />
        <pre> <b>"pro"</b> -> {
             "product manager", 
             "professional designer",
             "programmer",
             "programmer C#",
             "programmer Java"
             "property administrator",
             "provision expert" 
             } </pre> 
  So an index builder must analyze a string list and find <b>the least prefixes</b> of vacancy names. 
  Then when a builder finds a string with a letter after prior found prefix, it creates a child tree node <b>("prog")</b> (the count of data values in that node decreases as it is constantly filtered) and adds itself up to the parent node <b>("pro")</b><br>
    <pre><b>"prog"</b> -> {
             "programmer", 
             "programmer C#",
             "programmer Java"} 
             }</pre>
  Can you advise me on the types of tree indexes that naturally fit to solve this problem?
  What's the best of them by the seek time? 
  Thanks</p>