2016-10-19 7 views
0

私は、複数の部分検索のためにApache Solrを使ってDatastax Cassandraに取り組んでいます。 問題は、私がカウント(*)クエリを実行しているときでも、たった10回しか取得できないたびに、1300行が特定のクエリに属する​​ことを確認できます。Solr Cassandraの検索で10行しか得られない

[email protected]: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> 

でも、私は同じ問題を抱えています。これに対する解決策を教えてください。おかげさまで

答えて

0

スキーマから管理する必要はありません。クエリにはrowsstartというパラメータがあります。それらを使用する:行がスタート返すために、リストの最初の項目を定義し、返却する項目の最大数を定義します。

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

isd:9* ISDは9

start=17で始まる戻り、すべての項目がで始まる語りますリストの18番目の項目。

rows=22戻って18から40

+0

Iに戻る制限しますcqlshでレコードを取得するために使用しています。それでは、どのようにしてcqlコマンドプロンプト側のすべてのレコードを取得できますか –

+0

私はその構文に慣れていませんが、いくつかの例があります:https://docs.datastax.com/en/datastax_enterprise/4.6/datastax_enterprise/srch/ srchCql.htmlので、あなたはそれを使用して遊んで、あなたのシステム上でそれをテストすることができます。最終的なクエリバージョンを教えてください。それを答えに追加します。 –

+0

もう1つの問題私は今調べることができます。このように検索しようとすると.. solr_query = 'num1:* 1 * OR num2:* 1 *';それは私にレコードを与える..しかし、私は中国語のようなテキストで同じ構文をしようとしている場合、それは私のために働いていない.. solr_query = 'col1:*金沢* OR col2:*金泽*';これは私に0の記録を与えます.... –

0

から22の項目は、デフォルトのSolrので、これはあなたにすべての1300行を与えるこの

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

を試すには、行が、それは10

+0

あなたはこのようにしたくないでしょう、それは恐ろしく遅くなるでしょう。 startとrowsのparamsをsolrクエリに渡して結果をページしたい – nbpeth

関連する問題