anchor.diff:  
   delete_entry(Index, Field, Term, DocId, State) ->
       ets:match_delete(State#state.table,
  -                     {{b(Index), b(Field), b(Term)}, {DocId, '_'}, '_'}),
  +                     {{b(Index), b(Field), b(Term), b(DocId)},
  +                      '_', '_'}),
       noreply.
   %%% TODO: why can't I {reply, ok} here? (cargo-cult raptor_backend)
   
   info(Index, Field, Term, Sender, State) ->
       Count = ets:select_count(State#state.table,
  -                             [{{{b(Index), b(Field), b(Term)}, '_', '_'},
  +                             [{{{b(Index), b(Field), b(Term), '_'},
  +                                '_', '_'},
                                  [],[true]}]),
       riak_search_backend:info_response(Sender, [{Term, node(), Count}]),
       noreply.
  
positive.code: multi_index(IFTVPKList, State) ->
      %% TODO: look for timestamp before clobbering
      ets:insert(State#state.table,
                 [ {{b(I), b(F), b(T)}, {V, P}, K}
                   || {I, F, T, V, P, K} <- IFTVPKList ]),
      {reply, {indexed, node()}, State}.
  %%% TODO: why can't I {reply, ok} here? (cargo-cult raptor_backend)
  
negative.code:     noreply.
  
  find_terms_in_range(I, F, ST, ET, State) ->
      %% usort removes duplicates introduced by find_terms_in_range/6
      lists:usort(
        find_terms_in_range(I, F, ST, ET,
                            State#state.table,
                            ets:first(State#state.table))).
  
  find_terms_in_range(_, _, _, _, _,'$end_of_table') ->
      [];
  find_terms_in_range(I, F, ST, ET, Table, {I, F, T, V})
    when T >= ST, T =< ET ->
      %% duplicates will be removed by usort in find_terms_in_range/5
      [T|find_terms_in_range(I, F, ST, ET, Table,
                             ets:next(Table, {I, F, T, V}))];
  find_terms_in_range(I, F, ST, ET, Table, K) ->
      find_terms_in_range(I, F, ST, ET, Table, ets:next(Table, K)).
  
  