Lucene中可能更改的文本查询类型

Lucene中可能更改的文本查询类型,lucene,lucene.net,Lucene,Lucene.net,我的项目中有一个场景,我们使用Lucene进行搜索。我正在索引许多字段。 现在,我将typeId存储为这些字段之一。 用户需要搜索类型文本。但问题是类型文本可以稍后修改。但重新编制索引不是一种选择。需要一些更好的解决方案,所以请Lucene用户为我提供一些解决方案 我能想到的解决方案是检查搜索文本是否为TypeText,然后将搜索文本处理为TypeId:GuidValue,然后启动查询 请Lucene用户提供一些更好的想法。我对Lucene很陌生,了解Lucene提供的各种查询类型,但我不知道如

我的项目中有一个场景,我们使用Lucene进行搜索。我正在索引许多字段。 现在,我将typeId存储为这些字段之一。 用户需要搜索类型文本。但问题是类型文本可以稍后修改。但重新编制索引不是一种选择。需要一些更好的解决方案,所以请Lucene用户为我提供一些解决方案

我能想到的解决方案是检查搜索文本是否为TypeText,然后将搜索文本处理为TypeId:GuidValue,然后启动查询

请Lucene用户提供一些更好的想法。我对Lucene很陌生,了解Lucene提供的各种查询类型,但我不知道如何最好地使用它们


提前感谢。

如果我理解正确,您有一些类型对象,它们的文本属性可以更改,Id属性是一个GUID,不会更改

如果不想更改索引中的Type.Text值,则需要解析它在应用程序中对应的Type.Id,然后在lucene中查询相应的Type.Id。就像你的解决方案所建议的那样


但是不想更新索引的文本值有点违背了使用文本索引引擎的目的。

什么是文本类型?你能举一些你的数据的例子吗?它的自由文本,例如病人、医生、定期护士轮班、兼职护士轮班。是的,我同意它实际上违背了使用文本索引引擎的目的。正如您所说,我需要从文本中获取Guid,然后使用LUcene查询Type.Id。正当我正在考虑从索引中删除文本。请让我知道您是否可以想出任何其他方法来实现这一点。谢谢。要做到这一点,我将在应用程序中的某个位置有一个文本Guid映射列表,该列表在文本更改或创建新文本时更新。然后,我将为Guid字段创建一个专门的分析器,该分析器尝试使用映射将文本输入转换为Guid。类似于在搜索时工作的同义词过滤器。