2012-03-18 7 views
2

私のアプリケーション用の記事検索機能を作成しています。私は新しい質問を作成するときにタイトルのテキストボックスの下にポップアップStackoverflowの質問作成の提案と同様の検索機能を探しています。どのようにして最も一般的な単語を含む結果セットを生成するようにSolrを構成しますか

検索文字列:

"the dog waker" 

データベース行:

"The best you can do" 
"Love to your pet" 
"Selina the dog walker" 
"How to teach your dog to be healthy" 
"Teach your dog tricks" 

私は入力の各単語がResultSetへの影響を作りたいと入力ワードが見つからない場合、それはありません私が探しているデータセットをフィルタリングします。

私は、この結果セットを取得したい:

"Selina the dog walker" - 「犬」を持ち、ファジー入力「タクト」
"How to teach your dog to be healthy"から「ウォーカー」を検索するには - 「犬」
"Teach your dog tricks"ている - 「犬」を持っているの

schema.xmlを次のように変更しましたが、正常に動作していないようです。私はすべての単語を持っていない限り、すべてをフィルタリングします。

<analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.StopFilterFactory"/>  -->  
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/> 
</analyzer> 
+0

あなたがしたいことがわからない場合、無視された行が結果に表示されますか? –

+0

3つの行に "dog"があり、 "dog dog walker"が "walker"を持っているので、結果セットを取得したいと思います。私は他の2つを無視したいと思います。なぜなら、彼らは入力検索文字列にあった言葉を全く持っていないからです – EverTheLearner

答えて

1

ないあなたがここで何をしたいのか確認してください、私はEdgeNGramFilterFactoryを除去するであろうと、あなたには、いくつかのfuzzynessを追加したい場合は、あなたがPhoneticFilterを追加したり、Luceneの構文を使用することができます〜

0

わからない程度:

<filter class="solr.StopFilterFactory"/> 

一方

(ところで、あなたは、この行の末尾に決算XMLコメントを持っていることをあなたが認識している)、私は知っているのSolr 4に、follo翼は動作します:

<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt " enablePositionIncrements="true"/> 

私はあなたが必要とは思わない:

<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/> 

最後に、「あなたのペットへの愛は」あなたがそれを確認しないと、結果に表示されないでしょうか?

関連する問題