索引中的电子邮件ID索引

时间:2015-03-24 13:07:33

标签: solr solr4

我想索引SOLR中的电子邮件ID,但不知何故它不起作用 我的搜索有两部分。自动建议和文本搜索 当我使用

时,自动建议工作正常
<analyzer type="index">
  <tokenizer class="solr.LowerCaseTokenizerFactory"/>
  <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="15" side="front"/>
</analyzer>
<analyzer type="query">
    <tokenizer class="solr.LowerCaseTokenizerFactory"/>
</analyzer>

但是当我搜索唯一的电子邮件ID时,它会提供多个结果。对于例如sameer.rao@xyz.com是条目
输入:sameer.rao
输出:

sameer1.rao
sameer.rao1
sameer.rao

请帮忙!

我尝试过使用标准的tokenizer,但它只搜索由分隔符分隔的短语。我还想实现自动建议,它将返回部分搜索结果。 样品: ankarao.ka

必须返回ankarao.kale             ankarao.kate     我使用的字段名称是                  

然后我将电子邮件ID复制到其余字段。字段类型的描述如下。

                                                                                     
    

2 个答案:

答案 0 :(得分:0)

我认为您使用text作为电子邮件ID的字段类型,text的instand使用string作为schema.xml文件中电子邮件的字段类型。

您应该使用字符串的原因在于:

see this post

答案 1 :(得分:-1)

我认为这是由于你使用的EdgeNGram令牌化器,它会阻止你的索引结果进行更模糊的搜索,就像你得到的类似结果一样。您是否尝试过使用常规标准标记器?像这样:

<analyzer type="index">
                <tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
<analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>