2009-10-29 55 views
1

我想为我们的内部支持数据库的搜索 - 每个支持票由许多电子邮件,我试图找出如何更好地索引呢:使用Lucene.Net,我应该在这里使用什么索引stategy?

  • 我应该创建一个文档为每的电子邮件或
  • 我应该连接票证的所有电子邮件并为每张票证创建文档。

在搜索时我想回程票(而不是电子邮件的机票或任何类似的分组列表)

哪一个是最好的名单?

回答

0

如果您想在结果中列出票证,然后连接电子邮件。否则,您需要维护电子邮件和票据之间的关系。您只能使用文档中的文本字段来完成此操作。这可能很慢。但是,这种关系是可能的

如果您使用搜索与关系数据库索引电子邮件一个一个会没事的。您检索电子邮件,然后从lucene文档中读取tickedId字段,然后使用数据库中的此Id读取Ticket。

很明显,索引电子邮件是更灵活的解决方案。如果将来您需要检索每封电子邮件信息,您可以执行此操作。在所有电子邮件合一的解决方案中,您必须对整个数据库进行重新索引。

+0

谢谢 - 目前我正在尝试将所有电子邮件连接在一起,如果没有别的习惯使用Lucene。 – Justin 2009-10-29 15:11:53

0

如果要在票据层次上进行搜索,则最有意义的方法是将所有票证的电子邮件合并到一个文档中。

0

我不认为这里有一个确定的“最佳”答案。就个人而言,我可能会将电子邮件的文本包含在支持服务单的索引中,因为这样可以让单个索引访问根据电子邮件的文本和支持单的其他属性找到支持服务单。不过,这是相当主观的事情,所以你可以尝试原型制定不同的策略并进行一些用户测试。

相关问题