search - Solr 中的 CopyField 似乎不起作用

标签 search solr full-text-search solrnet

我正在尝试使用 Solr 中的 copyField 指令将一些字段复制到一个包罗万象的字段中以进行搜索。不幸的是,该字段似乎根本没有通过 copyField 指令填充。

这是我的源字段:

    <field name="firstName" type="text_general" indexed="true" stored="true" required="false" /> 
    <field name="lastName" type="text_general" indexed="true" stored="true" required="false" /> 
    <field name="postCode" type="text_general" indexed="true" stored="true" required="false" />
    <field name="emailAddress" type="text_general" indexed="true" stored="true" required="false" />

    <!-- suggest field -->
    <field name="name_Search" type="textSuggest" indexed="true" stored="true" multiValued="true" />

这是我的 copyField 指令:

<!-- copy fields -->
<copyfield source="firstName" dest="name_Search" />
<copyfield source="lastName" dest="name_Search" />
<copyfield source="emailAddress" dest="name_Search" />
<copyfield source="postCode" dest="name_Search" />

现在在“name_Search”字段上运行查询不会产生任何结果,并且该字段不会出现在架构浏览器中。

我是否需要做任何其他事情才能使 copyField 正常工作?我正在运行 Solr v5.2.1。

编辑

这里是用于 catch-all 字段的 textSuggest 字段类型:

<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

在 SolrConfig.xml 中,配置建议处理程序如下:

  <searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
  <str name="name">default</str>
  <str name="lookupImpl">FuzzyLookupFactory</str>      
  <str name="dictionaryImpl">DocumentDictionaryFactory</str>
  <str name="field">name_Search</str>
  <str name="suggestAnalyzerFieldType">textSuggest</str>
  <str name="buildOnStartup">true</str>
  <str name="buildOnCommit">true</str>
</lst>

  <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy" >
<lst name="defaults">
  <str name="suggest">true</str>
  <str name="suggest.count">10</str>
</lst>
<arr name="components">
  <str>suggest</str>
</arr>
  </requestHandler>

我知道建议处理程序有效,就好像我明确填写“name_Search”字段一样,然后我可以获得预期的结果。

最佳答案

在您的过滤器中,使用 copyField 而不是 copyfield(大写 F)。

来源:Documentation of Solr

关于search - Solr 中的 CopyField 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31339461/

相关文章:

javascript - windows.location.href 不起作用

SOLR 查询类似于 NOT IN (LIST)

solr - 更改配置的 maxBooleanClauses 无效

MySQL 全文自动完成搜索问题

mysql - 搜索可见记录 = 1

VB.NET - Array.Contains 的替代品?

hadoop - Hadoop + Nutch 1.15 + Solr Cloud 7.3.1索引无结果

Postgresql 全文搜索分词器

mysql - 如何在连接多个表的MySQL中执行全文搜索

php - MySQL多关键字搜索算法