【问题标题】:Indexing email ids in solr在 solr 中索引电子邮件 ID
【发布时间】:2015-03-24 13:07:32
【问题描述】:

我希望在 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

请帮忙!

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

必须返回 ankarao.kale 安卡拉凯特 我使用的字段名称是

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


【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    我认为您在 schema.xml 文件中使用文本作为电子邮件 ID 的字段类型,而不是使用字符串作为电子邮件的字段类型。

    你应该使用字符串的原因在这里:

    see this post

    【讨论】:

      【解决方案2】:

      我认为这是由于您使用的标记器EdgeNGram,它将阻止您的索引结果以进行更模糊的搜索,就像您返回的类似结果一样。您是否尝试过使用常规的标准分词器?像这样:

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

      【讨论】:

      • 我尝试过使用标准分词器,但它只搜索由分隔符分隔的短语。我还想实现自动建议,它会在部分搜索中返回结果。
      • 已用我正在使用的所有字段类型的详细信息更新了问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多