Java 搜索时在索引字段之间匹配前缀
鉴于以下示例文档:Java 搜索时在索引字段之间匹配前缀,java,search,lucene,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 查询应匹配前缀上的字段A和字段B(例如:1),以便上面的查询不会期望结果 这有意义吗?这在Lucene中是可能的还是有更好的方法来构造索引?我会为每个前缀创建单独的文档。然后使用连词查询(BooleanQuery和occure.MUST在两个字段上) 例如,文档1\u: `标题:“
FIELD_A: [1_aa] [1_cc]
FIELD_B: [2_xx] [1_bb]
查询结果如下所示:
find 'aa' in FIELD_A and 'xx' in FIELD_B
查询应匹配前缀上的字段A
和字段B
(例如:1
),以便上面的查询不会期望结果
这有意义吗?这在Lucene中是可能的还是有更好的方法来构造索引?我会为每个前缀创建单独的文档。然后使用连词查询(
BooleanQuery
和occure.MUST
在两个字段上)
例如,文档1\u
:
`标题:“1”
字段A:[aa][cc]
场_B:[bb]`
和文件2
:
`标题:"二"
字段B:[xx]`
希望这能回答您的问题。谢谢,这很有意义。我不想复制文档中存储的大量数据,因此使用这种方法是否有一种将有效子文档链接到主文档的“好”方法?我能看到这一工作的唯一方式是双重查询。如果不需要搜索,我会将其存储在索引之外,但如果需要搜索,您可以将其链接到原始的
docId
。另一种选择是将其存储在不同的索引中。