2012-02-05 9 views
1

私はZend_Search_Luceneという新しい考え方を持ち、indiciesに追加された文書を構築して検索する方法はありますが、検索用語がまったく提供されていなければ文書を返すことができるかどうかを知りたいのです。検索用語が提供されていない場合、Zend lucene検索で最初の20の文書を取得するには?

私はそれが奇妙に聞こえ、おそらくルーネン検索の目的に反していると知っていますが、ユーザーに最初の20の文書を返すというシナリオがあります。検索語を入力せずに「検索」します。

だから、その中に私の質問にある:私はそれは検索用語がかなり一部結果対何も見ないですべてを見るために提供されていない時に遭遇した最初の20件の文書を返しますZend_Search_Luceneを提供できるもの検索語。/

<?php 

    Zend_Search_Lucene::setResultSetLimit(20); 

    $index = Zend_Search_Lucene::open("some/path/to/index"); 

    $search_term = trim($_POST["search_term"]); 

    if ($search_term == "") 
    { 
     // adjust the search term to return any documents... 
     // will obviously be limited to the first 20... 
    } 

    $hits = $index->find($search_term); 

    // display the results... 
    // ... 

?> 

はお時間をどうもありがとうございます、そして任意のヘルプ提案:

は、私はすでに、この偉大な作業を持っています!ランダムな検索語を生成して、それを使用する方法について

+1

方法?たぶんあなたのサイトのコンテキスト内の何か? – vascowhite

+0

これは明らかです:/ヘルプvascowhiteのおかげで、私はそれを試してみましょう..! :) –

+0

'*'や '?'や最初のいくつかの結果をもたらすような組み合わせのように、検索語を設定することはできません。助けてくれてありがとう! –

答えて

2
何の検索用語を20にIDS 1の範囲を検索することにより、20のレコードの検索を提供していない(しかし、あなたの文書がidフィールドを持っている必要があります)され

$from = new Zend_Search_Lucene_Index_Term(1, 'id'); 
$to = new Zend_Search_Lucene_Index_Term(20, 'id'); 
$query = new Zend_Search_Lucene_Search_Query_Range(
      $from, $to, true // inclusive 
     ); 
$hits = $index->find($query); 
+0

明白なもう一つの解決策は、検索語を '*'や '?'や最初のいくつかの結果をもたらすようなものにすることはできません。助けてくれてありがとう! –

関連する問題