1

我在 Solr 搜索中遇到问题。我的架构如下

<fieldType name="c_text" class="solr.TextField">
<analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="parentId" type="string" indexed="true" stored="true"/>
<field name="data_s" type="c_text" indexed="true" stored="true"/>
<field name="email" type="string" indexed="true" stored="true"/>
<field name="receivedDate" type="tdate" indexed="true" stored="true"/>

我正在搜索电子邮件字段。其中包含以下格式的数据
Tarun Nagpal <tarunn@abc.com>

//This is working fine
email:*tarun*

但是以下没有结果

email:"Tarun Nagpal"

你能帮忙吗,为什么它不像在电子邮件字段上搜索那样搜索短语。在 data_s 字段上搜索工作正常。

4

1 回答 1

3

您需要使用文本字段类型,因为您打算搜索标记:

具体来说Tarun Nagpal <tarunn@abc.com>

字符串字段将回答==等式和通配符查询,例如*un Nagp**unn@abc.com>甚至更明显的外来查询。

文本字段将回答标记tarunnagpal和。tarunn abccom

其他实现 N-gram 和 Soundex 的字段类型甚至可以更正您的拼写。


请参阅优秀的ht​​tps://stackoverflow.com/a/2119479/604511

于 2012-04-28T10:17:43.160 回答