2011-01-17 7 views
2

Apache Solrを使用して自分のウェブサイトの検索エンジンを実装する予定です。私は、検索インデックスが構築されていて、そのドキュメントの1つは、次のとおりです。期待通り バーチャ*ウェブサイト検索エンジンのLuceneクエリの書き方

戻っ「バーチャ」で始まるすべてのレコードを、:の検索を実行する

バーチャファイター2

"Virtua Fighter 2"を検索すると完全一致が返されます。

「Virtua Fighter」を検索してVirtua Fighter 2を結果セットに戻したいとします。しかし、Virtua Fighterのフレーズ検索では、結果セットからVirtua Fighter 2が省略されます。フレーズ検索でワイルドカードを使用することはできません。「Virtua Fighter *」は結果を返しません。

これをサポートするには、どのような種類のクエリを書く必要がありますか?または、単純なウェブサイト検索エンジンで使用されるLuceneクエリのタイプは何ですか?

+0

検索に使用するコピーフィールドを考慮してください。新しいフィールドタイプを作成し、適切なTokenizerFactories [http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#TokenizerFactories]を使用する必要がありますが、適切な答えを得るのに十分な精通ではありません。 –

答えて

3

タイトルにキーワードアナライザを使用していると思いますか? (または、トークンを分割しない別のアナライザ)

標準アナライザを使用するだけで、フレーズクエリがうまく動作します。

+0

それはそれでした。タイトルに「文字列」フィールドタイプを使用しましたが、これはキーワードアナライザにデフォルト設定されていたはずです。私は、適切なアナライザを使用するSolrが定義する "text"のフィールドタイプを使用するように変更しました。 – Simian