Вот то, что я думаю, вы спрашиваете. Предположим, у вас есть документ вроде:
field8: { 1 | 2 | 3 }
field10: { foo,bar | baz,foo | bar,baz }
Вы хотите, чтобы запрос +field8:1 +field10:foo
возвратил этот документ, но +field8:3 +field10:foo
не должен возвращать документ.
Это реляционная модель данных, и это не то, что Lucene пытается сделать хорошо. Лучше всего использовать реляционную базу данных.
Если вы хотите придерживаться Lucene, вам следует разделить каждое из этих полей на отдельный документ. Таким образом, один документ будет field8:1, field10: foo,bar
и т. Д. В качестве альтернативы у вас может быть свой собственный токенизатор, который использует полезные нагрузки или термины позиции для обработки этого. Я не знаю, будет ли это особенно легко или быстро.
На этом сайте много вопросов относительно вашей проблемы, например, Хранение реляционных данных в индексе Lucene.NET