Программно изменить Riak's Solr max возвращаемых строк - PullRequest
0 голосов
/ 22 июня 2019

Я использую Riak в качестве внутреннего хранилища токенов для моего приложения Elixir. Эти токены часто имеют ограниченное время жизни (например, 5 минут), и у меня есть процесс очистки, который ищет токен с истекшим сроком действия, чтобы затем удалить их.

Я использую пользовательский индекс в поле времени истечения:

<dynamicField name="*_int_register" type="int"  indexed="true" stored="true" multiValued="false"/>

Bucket, схема и индекс создаются программно при запуске приложения.

Однако я заметил, что при поиске возвращается не более 10 результатов:

iex> Riak.Search.query("asteroid_token_store_device_code_riak_index", "exp_int_register:*")
{:ok,
 {:search_results,
  [
    {"asteroid_token_store_device_code_riak_index",
     [
       {"score", "1.00000000000000000000e+00"},
       {"_yz_rb", "device_code"},
       {"_yz_rt", "ephemeral_token"},
       {"_yz_rk", "pbvWQLGRIym0e3ZpTujHEE831gcIgptUfeZE6YmcdHA"},
       {"_yz_id",
        "1*ephemeral_token*device_code*pbvWQLGRIym0e3ZpTujHEE831gcIgptUfeZE6YmcdHA*11"},
       {"exp_int_register", "1561199750"},
       {"refresh_token_id_register", "CRJ435CQ"}
     ]},
   # 9 other results

Похоже, что по умолчанию Solr возвращает 10 результатов. В частности, созданный solrconfig.xml содержит следующую настройку:

  <requestHandler name="/select" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
     </lst>
     <!-- Custom Yokozuna component to translate custom shard filter
          queries. -->
     <arr name="first-components">
       <str>fq_shard_translator</str>
     </arr>
    </requestHandler>

Это причина возврата только 10 записей? Можно ли программно изменить это значение, используя клиентские библиотеки Erlang или Elixir Riak?

...