我有很多配对字段(hoursDistance1,cityName1,hoursDistance2,cityName2,hoursDistance3,cityName3等)。
我需要搜索哪些查询,以便Lucene根据具有正确术语而不仅仅是其中一个的两个字段进行评分?即如果我用这个名字从这里开始3小时搜索一个城市,我如何让它返回结果,其中hoursDistanceN是3小时从这里和cityNameN这是没有得分其他字段对?
答案 0 :(得分:2)
您可以为每对创建一个文档。而不是
id | hours1 | name1 | hours2 | name2 | ...
你会:
id | pair_num = 1 | hours | name
id | pair_num = 2 | hours | name
...
由于您只想一次搜索一对,因此您不需要将结果合并在一起或任何内容。
答案 1 :(得分:0)
IIUC,您可以通过对数据进行非规范化来实现: 为每对字段创建一个Lucene文档, 例如如果:
hoursDistance1=3,cityName1=London
使用以下字段创建文档:
hoursDistance=3,cityName=London,pairIndex=1
然后运行如下查询:
hoursDistance=5 AND cityName=Leeds