在Solr Cassandra搜索中仅获取10行
我正在使用ApacheSolr进行Datastax Cassandra的多部分搜索。 问题是,每次我只得到10行,即使我做了count(*)查询,我也能检查有1300行属于特定的查询在Solr Cassandra搜索中仅获取10行,solr,cassandra,datastax,Solr,Cassandra,Datastax,我正在使用ApacheSolr进行Datastax Cassandra的多部分搜索。 问题是,每次我只得到10行,即使我做了count(*)查询,我也能检查有1300行属于特定的查询 nandan@cqlsh:testo> select id from empo where solr_query = 'isd:9*'; id -------------------------------------- 5ee5fca6-6f48-11e6-8b77-86f30ca893d3 27e
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>
1000000
1000000
但我还是遇到了同样的问题。请让我知道这个问题的解决方案。
谢谢。我认为不应该从模式管理它。查询有一个
行
和一个开始
参数。使用以下选项:行定义要返回的最大项目数,开始定义列表中要返回的第一个项目:
q=isd:9*&rows=22&start=17&wt=json
isd:9*
返回isd以9开头的所有项目
start=17
表示从列表中的第18项开始
rows=22
返回22项,从18项到40项。我认为不应该从模式管理它。查询有一个行
和一个开始
参数。使用以下选项:行定义要返回的最大项目数,开始定义列表中要返回的第一个项目:
q=isd:9*&rows=22&start=17&wt=json
isd:9*
返回isd以9开头的所有项目
start=17
表示从列表中的第18项开始
rows=22
返回22项,从18项到40项。试试这个
select id from empo where solr_query = 'isd:9*' limit 1300;
这将为您提供所有1300行,默认情况下,solr将返回的行限制为10行。试试这个
select id from empo where solr_query = 'isd:9*' limit 1300;
这将为您提供所有1300行,默认情况下,solr将返回的行限制为10。我使用cqlsh检索记录。那么如何通过cql命令提示符端获取所有记录,我不熟悉这种语法,但这里有几个示例:这样您就可以使用它并在您的系统上进行测试。让我知道最终的查询版本,我会将其添加到答案中。我现在可以检查另外一个问题。。如果我想这样搜索。。solr_query='num1:*1*或num2:*1*';它给了我记录。。但是,如果我在像汉字这样的文本上尝试相同的语法,它对我来说是不起作用的。。solr_query='col1:*金泽* 或col2:*金泽*'; 这给了我0条记录…我正在使用cqlsh检索记录。那么如何通过cql命令提示符端获取所有记录,我不熟悉这种语法,但这里有几个示例:这样您就可以使用它并在您的系统上进行测试。让我知道最终的查询版本,我会将其添加到答案中。我现在可以检查另外一个问题。。如果我想这样搜索。。solr_query='num1:*1*或num2:*1*';它给了我记录。。但是,如果我在像汉字这样的文本上尝试相同的语法,它对我来说是不起作用的。。solr_query='col1:*金泽* 或col2:*金泽*'; 这给了我0条记录…你不会想这样做的,它会非常慢。您需要将start和rows参数传递到solr查询中并分页结果。如果您不想这样做,那么速度会非常慢。您需要将start和rows参数传递到solr查询并分页结果