0

クエリ フレーズの照合に Zend Lucene を使用しようとしていますが、あいまい一致が必要です。

現時点では、PhraseQuery を使用して「valentin rossi」を検索すると (DB には「valentino rossi」があります)、結果がありません。PhraseQuery は文字列「valentin rossi」を正確に検索するため、言葉。

実用的な解決策を探す必要がある場所を教えてください。前もって感謝します!

4

3 に答える 3

2

Zend Lucene はあいまい検索をサポートしているようです。ドキュメントはこちらです。

次のようなことをするだけです:

$queryString = 'search terms here';
//add the '~' to make it fuzzy if there is a query string
$queryString = $queryString ? $queryString . '~' : $queryString;
$index = Zend_Search_Lucene::open('/path/to/index');
$results = $this->_index->find(queryString);
于 2013-10-17T15:12:19.473 に答える
0

Zend Lucene を使用している場合は、検索するテキストを準備する必要があるため、次のようになります。

$texttosearch = 'valentin rossi';
$query = Zend_Search_Lucene_Search_QueryParser::parse($texttosearch);

//you can echo $query to see result
echo $query;

等々 ...

Zend_Search_Luceneに関するこの素晴らしい本を見てください。

于 2012-06-29T11:17:14.193 に答える
0

Lucene PhraseQuery は、ワイルドカードおよびファジー クエリをサポートしていません。Zend Lucene についてはよくわかりません。lucene では、ComplexPhraseQueryParser を使用して、ファジーまたはワイルドカードを使用したフレーズ検索を実行できます。内部で SpanQueries を使用します。Zend で ComplexPhraseQueryParser または SpanQueries を利用できる場合は、うまくいくはずです。

于 2012-06-29T22:45:48.440 に答える