假设我有一个客户的 Lucene 索引。每个客户都有他们订购的产品。
假设这两个家伙代表我索引中的两个文档:
Name: John Smith
Product: Chicken Sandwich, Price: $10
Product: Dodge Challenger, Price: $35000
Name: John Q. Public
Product: Chicken Sandwich, Price: $15
Product: Audi TT, Price: $35000
鉴于我的索引是以客户为中心而不是以订单为中心,我的文档大概如下所示:
<add>
<doc>
<field name="Name">John Smith</field>
<field name="Product">Chicken Sandwich</field>
<field name="Price">10</field>
<field name="Product">Dodge Challenger</field>
<field name="Price">35000</field>
</doc>
<doc>
<field name="Name">John Q. Public</field>
...
这最终会将所有价格和产品作为多值字段混合在一起,并失去它们的相关关联。
我如何将它放入我的索引中——以及我将如何查询它——这样搜索“每个为鸡肉三明治支付超过 12 美元的顾客”将只返回 John Q.Public?