【问题标题】:Force Solr not to use _version_ field during search强制 Solr 在搜索期间不使用 _version_ 字段
【发布时间】:2015-03-02 18:07:54
【问题描述】:

我的 schema.xml 中有 _version_ 字段的默认声明:

<field name="_version_" type="long" indexed="true" stored="true"
   multiValued="false"/>

我读到这个字段仅由 Solr 内部管理以进行并发管理,但是当我搜索“002219”作为回报时,我得到:

"docs": [  
  {  
        "person_street_t": [  
          "<streetName>",  
        ],  
        "id": "123",  
        "person_abbr_t": [  
          "<sb>"  
        ],  
        "person_name_t": [  
          "<sb>"  
        ],  
        "person_city_t": [  
          "<city>"  
        ],  
        "person_zipcode_s": "<zipcode>",  
        "type_s": "PERSON",  
        "person_house_number_s": "<hn>",  
        "_version_": 1494523490022195200  
                            //****** <- matched by Solr
   }  
 ]  

但我不希望 Solr 搜索该字段。 这是正常行为吗?难道我做错了什么?或者有没有其他方法可以禁用_version_ 字段中的搜索?

更新:

好的,我看了一点,发现这个字段(_text)是defaultSearchField。所以我现在所做的是更改默认值:

<copyField source="*" dest="_text"/>

到:

  <copyField source="*_t" dest="_text"/>
  <copyField source="*_s" dest="_text"/>
  <copyField source="*_ts" dest="_text"/>
  <copyField source="*_ss" dest="_text"/>

这些是我唯一索引的字段类型(*_ts 是我添加的)。够吗?

【问题讨论】:

  • 什么是默认搜索字段,它的类型和类型定义?您的确切查询网址是什么?
  • 我没有设置任何默认搜索字段,所以必须设置为 Solr 默认。我在工作中这样做,所以我明天可以提供更多细节。附:感谢关注:)
  • 您的搜索处理程序是如何配置的?您的 solrconfig.xml 中确实有一个。
  • 如何索引?您的导入例程中可能有一个包罗万象的字段。
  • 架构的其余部分如何?应该是最后一个问题:)

标签: java solr lucene full-text-search


【解决方案1】:

如果您使用示例架构,您很可能定义了 copyField,将所有内容复制到单个 text 字段(在 schema.xml 中定义)并搜索该字段(在solrconfig.xml)。

这对开发有好处,但所有内容都只是作为文本搜索,可能不是你想做的事情。

您可以研究切换到 eDisMax 之类的东西。或者,如果你还没有准备好,你可以定义更严格的 copyField 规则来只聚合你想要的字段。

【讨论】:

  • 你说得对,我有:。但它真的需要吗?这个聚合字段是做什么用的?如果我只是删除它会好吗?所有字段都已“自行”编入索引,不是吗?
  • 您当前的配置需要它,在您的 solrconfig.xml 中查找 df 字段定义。 Solr 为您的搜索方式提供了很大的灵活性,目前您正在使用最简单的选项,将所有内容组合到一个字段中进行搜索。最终,您将希望从那个迁移到像 eDismax 这样的东西。阅读教程/参考指南了解更多信息。
  • 谢谢,还有一件事:我在更新问题中发布的 copyField 定义可以用作临时解决方案吗?
  • 我认为他们应该没问题,是的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-04
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
相关资源
最近更新 更多