搜索时匹配索引字段之间的前缀

时间:2012-08-30 12:43:42

标签: java search lucene

鉴于下面的示例文档:

FIELD_A: [1_aa] [1_cc]
FIELD_B: [2_xx] [1_bb]

查询会找到类似的内容:

find 'aa' in FIELD_A and 'xx' in FIELD_B

查询应该在前缀上匹配FIELD_AFIELD_B(例如:1_),因此上面的查询不会产生结果。

这有意义吗?这在Lucene中是可能的还是有更好的方法来构建索引?

1 个答案:

答案 0 :(得分:1)

我会为每个前缀创建单独的文档。然后在两个字段上使用联合查询(BooleanQueryOccur.MUST)。

例如文档1_

`title:“1_”

FIELD_A:[aa] [cc]

FIELD_B:[bb]`

并记录2_

`标题: “2 _”

FIELD_B:[xx]`

希望能回答你的问题。