我有一个solr服务器,其dynamicField为" phoneNumbers *"
当它通过mongo-connector从我们的mongo数据库接收记录时,它最终会显示如下:
{
phoneNumbers.0: "123-456-7890",
phoneNumbers.1: "321-654-0987"
}
我有办法只查询电话号码字段吗?像这样:
phoneNumbers.*:"123-456-7890"
我试图阻止对搜索进行硬编码:
phoneNumbers.0:"123-456-7890" || phoneNumbers.1:"123-456-7890" || phoneNumbers.2:"123-456-7890"...
答案 0 :(得分:1)
.0
和.1
条目来自mongo连接器,扁平化文档以允许Solr中存在任何子文档。
解决此问题的最简单方法是添加一个字段以包含所有值并将字段设置为多值(以便它可以保留多个值),然后使用copyField
指令告诉Solr放置从phoneNumbers.-fields到该单个字段的所有内容。然后,您可以针对该字段进行搜索,以匹配phoneNumbers
字段中的任何条目。
例如:
<copyField source="phoneNumbers.*" dest="phoneNumbers" />