Получение только 10 строк в поиске Solr Cassandra

Я работаю над Datastax Cassandra с Apache Solr для многократного частичного поиска. Проблема в том, что каждый раз, когда я получаю только 10 строк, даже если я выполняю запрос count(*), я могу проверить, что 1300 строк принадлежат конкретному запросу.

nandan@cqlsh:testo> select id from empo where solr_query = 'isd:9*';

 id
--------------------------------------
 5ee5fca6-6f48-11e6-8b77-86f30ca893d3
 27e3e3bc-6f48-11e6-8b77-86f30ca893d3
 f3156e76-6f47-11e6-8b77-86f30ca893d3
 f315ac74-6f47-11e6-8b77-86f30ca893d3
 f315bc82-6f47-11e6-8b77-86f30ca893d3
 27e3058c-6f48-11e6-8b77-86f30ca893d3
 4016eee4-6f47-11e6-8b77-86f30ca893d3
 1bd33e34-6f47-11e6-8b77-86f30ca893d3
 8f0a9168-6f47-11e6-8b77-86f30ca893d3
 6669cc42-6f47-11e6-8b77-86f30ca893d3

(10 rows)

После поиска нескольких ссылок я вношу изменения в файл solrconfig.xml. и изменения, как показано ниже.

<requestHandler class="solr.SearchHandler" default="true" name="search">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <int name="rows">1000000</int>
     </lst>
 <!-- SearchHandler for CQL Solr queries:
    this handler doesn't support any additional components, only default parameters
    -->

  <requestHandler class="com.datastax.bdp.search.solr.handler.component.CqlSearchHandler" name="solr_query">
     <lst name="defaults">
       <int name="rows">1000000</int>
     </lst>
  </requestHandler>

Но все же я получаю ту же проблему. Пожалуйста, дайте мне знать, что будет решением для этого. Спасибо.


person Big Data Guy    schedule 19.10.2016    source источник


Ответы (2)


Я не думаю, что им следует управлять из схемы. Запрос имеет параметры rows и start. Используйте их: rows определяет максимальное количество возвращаемых элементов, start определяет первый возвращаемый элемент в списке:

q=isd:9*&rows=22&start=17&wt=json

isd:9* возвращает все элементы, где isd начинается с 9.

start=17 говорит, что начинается с 18-го элемента в списке.

rows=22 возвращает 22 элемента, от 18 до 40.

person Lefty G Balogh    schedule 19.10.2016
comment
Я использую для извлечения записей с помощью cqlsh. Тогда как я могу получить все записи со стороны командной строки cql, - person Big Data Guy; 19.10.2016
comment
Я не знаком с этим синтаксисом, но вот несколько примеров: docs.datastax.com/en/datastax_enterprise/4.6/, чтобы вы могли поиграть с ним и протестировать его в своей системе. Сообщите мне окончательную версию запроса, и я добавлю ее к ответу. - person Lefty G Balogh; 19.10.2016
comment
еще одна проблема, которую я могу проверить сейчас.. если я пытаюсь выполнить поиск таким образом.. solr_query = 'num1:*1* OR num2:*1*'; Это дает мне записи.. но если я пытаюсь использовать тот же синтаксис для текста, что и китайский иероглиф, это не работает для меня.. solr_query = 'col1:*金泽* OR col2:*金泽*'; это дает мне 0 записей.... - person Big Data Guy; 20.10.2016

попробуй это

select id from empo where solr_query = 'isd:9*' limit 1300;

это даст вам все 1300 строк, по умолчанию solr ограничивает возвращаемые строки до 10.

person root    schedule 30.10.2016
comment
вы не захотите делать это таким образом, это будет ужасно медленно. вы захотите передать параметры start и rows в запрос solr и просмотреть результаты - person nbpeth; 29.06.2017