我正在将我的 MVC 应用程序(使用 MySql)中的全文搜索更改为 Lucene .NET。我的个性化搜索有一些我在 Lucene 中无法重现的怪癖。
大的是这样的:
客户 1 在他的联系人列表中有客户 2,并为他分配了一个关键字,比如说“妈妈”。这是一个私人关键字,只有客户 1 可以看到,并且仅在客户 1 搜索时有效。
客户 1 搜索“妈妈”:
- 客户 2
- 产品 3
- ETC..
客户 2 搜索“妈妈”:
- 产品 3
- ETC..
基本上,它是一个带有用户标识符的标签。
我如何在 Lucene 中做到这一点?
我能想到的唯一方法是为每个用户使用文档中的关键字创建一个私有索引,并使用我的标准索引和用户私有索引进行搜索。问题是我最终会得到千分之一的索引......我不知道这是否真的有效。
有没有办法在文档的字段中设置一些东西,以便我可以保存用户 ID 并仅在 id 匹配时在那里搜索?
谢谢
编辑:
要求是将关键字“MOM”添加到文档“客户 2”中,但我只能在客户 1 搜索时使用该关键字。如果客户 2 搜索自己,它将使用除关键字 one 之外的所有其他字段。