Php Solr模式动态字段

Php Solr模式动态字段,php,solr,lucene,Php,Solr,Lucene,我使用dataimport requesthandler将文档添加到我的Solr索引中。我有3个字段(城市、邮编、国家) 例如: 身份证号码:1 邮政编码:12345 城市:测试1 国家:德国 身份证号码:2 邮政编码:12341 城市:测试1 国家:德国 身份证号码:3 邮政编码:67891 城市:测试2 国家:奥地利 现在,我想以一种特定的方式搜索这些字段。正如你在我的例子中看到的,城市“测试1”有两个不同的拉链。我想做一个autosuggest,它以以下格式建议文档。Zip城市,国家(12

我使用dataimport requesthandler将文档添加到我的Solr索引中。我有3个字段(城市、邮编、国家)

例如:

身份证号码:1 邮政编码:12345 城市:测试1 国家:德国

身份证号码:2 邮政编码:12341 城市:测试1 国家:德国

身份证号码:3 邮政编码:67891 城市:测试2 国家:奥地利

现在,我想以一种特定的方式搜索这些字段。正如你在我的例子中看到的,城市“测试1”有两个不同的拉链。我想做一个autosuggest,它以以下格式建议文档。Zip城市,国家(12341测试1,德国)。没问题。 但是,如果一个城市有两个不同的邮政编码,我想同时搜索这两个邮政编码,那该怎么办呢

我的想法是:当一个城市有超过1个Zip时,我必须添加(Test1,德国)作为文档

但我真的不知道如何在索尔做到这一点? 数据导入能够做到这一点吗

希望有人能帮助我


THX

我真的没有抓住你。你到底想搜索什么?您的搜索查询将是什么样的?歧义将从何而来?如果您正在进行自动建议,而不是开始键入1234时,那么您将在列表中看到两个结果(两个拉链)。当您开始键入say Test1时,您将在建议中看到这两个城市。是的,将它们作为单独的文档添加ea!当您键入Test1时,您将看到两个拉链。但是,如果用户想要在两个拉链中搜索,该怎么办呢。实际上他不能。因为他必须选择其中一个。我的想法是,只有当一个城市有一个以上的zip时,才设置一个没有zip的文档加上两个有zip的文档。我认为您的问题更多的是前端,而不是解决方案。搜索不是问题。即使一次搜索了多个zip,也可以构建一个solr查询,比如zip:12341+或+zip:12345。但是查询形成将是一个属于您的问题。一旦你从Solr那里得到结果,你就必须输入一个逻辑,并处理重复的城市不同的邮政信箱。是的!这都是关于查询形成的。您必须构建查询框架,以便返回所需的结果。返回结果后,您将决定是否为同一城市推荐附近的zip,并为用户提供在搜索结果页面上选择它们的选项,是否在搜索结果页面上显示附近zip的结果(声明您可能也感兴趣),或者在返回结果后,您可以连接字符串(同一个城市不同的zip)在一起,然后当用户单击连接的字符串时,使用布尔运算符等形成适当的solr查询。