热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr5中的EdgeNGramFilterFactory更改

如何解决《Solr5中的EdgeNGramFilterFactory更改》经验,为你挑选了1个好方法。

精简版:

有谁知道Soln5的EdgeNGramFilterFactory是否发生了什么事?它曾经在solr 4上正常工作,但我刚刚升级到solr5并且使用此过滤器的具有此字段的内核拒绝加载...

很长的故事:

此配置曾用于solr4.10(schema.xml):







    
        
        
    
    
        
    

和文档说我这样做是正确的(如果没有明确提到它是solr4或solr5).

但是,当我尝试使用此配置添加集合时,它失败并显示以下消息:



   org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:Error from server at http://localhost:8983/solr: Error CREATEing SolrCore 'test_collection': Unable to create core [test_collection] Caused by: Unknown parameters: {side=front}

我删除了side=front"未知"参数,从头开始,它工作 - 意味着没有更多的错误.

因此,虽然它曾经用于solr4而没有任何额外的改变,但对于solr5它不再有效.有什么改变了?我是否错过了有关此过滤器的任何文档?我需要加载任何额外的库来使其工作?

最后,如果上面的意思是这样的(bug/feature/what) - 是否有任何解决方法,以便拥有这个"side-substring"索引功能,而不必在我添加文档时生成值Solr的?

更新:使用"黑客"架构(即没有side=front),我索引文档并更改PP要存储的字段.当我搜索时,它看起来像索引整个值.例如,因为NAME:ELEPHANT,我发现PP:ELEPHANT......



1> cheffe..:

该属性side 已在版本4.4 中的LUCENE-3907中删除.现在,此过滤器的行为就像您放弃了一样side="front".因此,您可以删除该属性并且没问题,因为您正在使用"前端".

正如您可以阅读链接的Lucene问题的对话

如果你需要反向n-gram,你可以随后添加一个过滤器来做到这一点.在此过滤器中无需将此作为单独的逻辑.我们应该分割逻辑并尽可能简化过滤器.

这就是已经完成的事情.side属性已从过滤器中删除.

这已经在Lucene完成,而不是直接在Solr中完成.由于Lucene是一个Java-API,因此在过滤器的Java Doc中已经提到过它

从Lucene 4.4开始,此过滤器不支持EdgeNGramTokenFilter.Side.BACK(您可以使用ReverseStringFilter预先和之后获得相同的行为),正确处理补充字符并且不再更新偏移量.

这可能是您在Solr文档中找不到相关内容的原因.但Lucene的变更日志中也提到了这种变化.


推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • com.hazelcast.config.MapConfig.isStatisticsEnabled()方法的使用及代码示例 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • AIX编程挑战赛:AIX正方形问题的算法解析与Java代码实现
    在昨晚的阅读中,我注意到了CSDN博主西部阿呆-小草屋发表的一篇文章《AIX程序设计大赛——AIX正方形问题》。该文详细阐述了AIX正方形问题的背景,并提供了一种基于Java语言的解决方案。本文将深入解析这一算法的核心思想,并展示具体的Java代码实现,旨在为参赛者和编程爱好者提供有价值的参考。 ... [详细]
author-avatar
Opera2502896761
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有