【发布时间】:2015-11-24 13:54:06
【问题描述】:
我有一个带有“FirstName”和“LastName”字段的 Orient DB 类“user”,其中可能包含一个或多个单词(用户可以有更多的名字和姓氏)。这些字段 ["FirstName","LastName"] 上有一个 FULLTEXT LUCENE 索引。我可以创建一个查询来搜索这些字段中的任何单词:
SELECT FROM user WHERE ([FirstName,LastName] LUCENE "Peter")
我还可以创建查询来搜索多个关键字,例如:
SELECT FROM user WHERE ([FirstName,LastName] LUCENE "Peter AND Fa*")
但我不知道如何搜索同一个单词的多个匹配项。我试过了:
SELECT FROM user WHERE ([FirstName,LastName] LUCENE "Peter AND Peter")
但它会返回与第一个查询相同的集合。
我试图在 Orient DB 手册中找到答案,例如在这里:http://orientdb.com/docs/2.0/orientdb.wiki/FullTextIndex.html,但没有找到任何引导我找到解决方案的指导。
有人知道如何处理这种情况吗?
已编辑 - 看来,我没有准确地指定问题。所以我在这里添加一个简短的例子:
假设我的数据库有 3 个类:
Nr FirstName LastName
-------------------------
1. Tim Tom
2. Tim Tim
3. Peter Tim Timar
“搜索请求”"Ti* AND Ti*" 的结果应该是:
- 编号。 2(FirstName 匹配 1 个,LastName 匹配 1 个)
- 和 编号。 3(LastName 中有 2 个匹配项)
- 但不是编号。 1(因为它只有 1 个匹配项)。
顺便说一句:我在这里尝试简化我正在使用的域。在实际场景中,我需要搜索两个以上的字段,这就是我需要通用解决方案的原因
【问题讨论】: