繁体   English   中英

可以使用带有特殊字符和标点符号的Lucene Analyzer?

[英]Lucene Analyzer to Use With Special Characters and Punctuation?

我有一个Lucene索引,其中包含多个文档。 每个文档都有多个字段,例如:

Id
Project
Name
Description

Id字段将是唯一的标识符,例如GUID,Project是用户的ProjectID,并且用户只能查看其项目的文档,并且Name和Description包含可以包含特殊字符的文本。

当用户在“名称”字段上执行搜索时,我希望能够尝试匹配我所能做到的最佳匹配,例如:

First

都将返回:

First.Last 

First.Middle.Last

名称也可以是这样的:

Test (NameTest)

如果用户在其中键入“测试”,“名称”或“(NameTest)”,则他们可以找到结果。

但是,如果我说Project是'ProjectA',则需要完全匹配(不区分大小写的搜索)。 Id字段也是如此。

我应将哪些字段设置为Tokenized,将哪些字段设置为Untokenized? 另外,我是否应该考虑有一个好的分析仪来实现这一目标?

我一直在努力决定实现所需搜索的最佳途径。

出于简单原因,您的ID字段应该未标记,除非您编写自己的标记程序,否则它似乎无法标记(基于空格)。 您可以标记所有其他字段。

对项目名称执行短语查询,查找PhraseQuery或将项目名称括在双引号中(这将使其完全匹配)。 示例:“ \\“我的幻想项目” \\“

对于名称字段,一个简单的查询应该可以正常工作。

不确定是否需要组合字段。 在这种情况下,请查询BooleanQuery(可让您以布尔方式组合不同的查询)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM