2

私はsunspot_railsv1.2gemでsolrを使用しています。

私のschema.xmlファイルには、次のものがあります。

<fieldType name="text" class="solr.TextField" omitNorms="false">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" catenateWords="1" preserveOriginal="1"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="front"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" preserveOriginal="1"/>
  </analyzer>
</fieldType>

文字列にインデックスをfirstname.lastname@example.com付けると、を検索すると検索できますが、を検索すると検索できexample.comませんfirstname.lastname

クエリ設定から削除すると、 ;WordDelimiterFilterFactoryを検索してメールを送信できます。firstname.lastnameただし、を検索しても何も表示されませんexample.com

これらの手段のいずれかで検索できるように構成ファイルを変更するにはどうすればよいですか?

4

1 に答える 1

1

Solr Admin Analysis Pageを使用して、現在のインデックスとクエリ分析の構成が検索にどのように影響しているかをデバッグできます。もう 1 つのオプションは、Lukeを使用して Lucene インデックスを覗くことです。

ただし、検討できる代替手段があります。メールと URL は特定の方法で処理する必要があるため、Lucene には、特にメールと URL を処理する StandardTokenizer のバリアントがあります。Lucene Email/URL Tokenizer対応のSolr Email/URL Tokenizer Factory

于 2012-01-30T19:40:59.413 に答える