Zend Lucene搜索相关领域?

时间:2010-11-16 09:40:04

标签: php zend-framework lucene zend-search-lucene

我有很多配对字段(hoursDistance1,cityName1,hoursDistance2,cityName2,hoursDistance3,cityName3等)。

我需要搜索哪些查询,以便Lucene根据具有正确术语而不仅仅是其中一个的两个字段进行评分?即如果我用这个名字从这里开始3小时搜索一个城市,我如何让它返回结果,其中hoursDistanceN是3小时从这里和cityNameN这是没有得分其他字段对?

2 个答案:

答案 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