Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 搜索时在索引字段之间匹配前缀_Java_Search_Lucene - Fatal编程技术网

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
。另一种选择是将其存储在不同的索引中。