我一直在卢克内(Lucene)遇到一些困难,并希望得到任何帮助。
我有一个自定义查询,该查询是使用queryparser.parse手动编写和解析(此查询)的。我正在使用Lucene_29版本和标准分析仪。
在我的查询中,我有一个特殊的角色(结肠),需要保留它:
+(Name:"test:word" OR Business:"test:word hello")
解析上述查询文本后的输出是:
+(Name:"test word" OR Business:"test word hello")
有人有任何建议吗,我尝试将一个空的停止单词收集到标准分析仪构造函数,但这没有效果,它仍然会剥离结肠。
谢谢。
你不能。标准分析仪专门设计用于删除特殊字符。
答案是使用不剥离特殊字符(例如WhiteSpaceAnalyzer
)的分析仪实现或基于现有的标记器和过滤器来构建自定义分析仪以满足您的需求。
请注意,您需要使用WhiteSpaceAnalyzer
到 index 使用这些特殊字符的数据,否则它们将在查询时间内可用。