我为我的产品实体定义了一个 Document 对象,它有几个字段:Title、Brand、Category、Size、Color、Material。
现在我想支持用户对多个字段进行 AND 搜索。任何有一个、两个或多个字段包含所有搜索词的文档都将被响应。
例如,当用户输入“gucci shirt red”时,我想返回所有字段与所有 3 个标记“gucci”、“shirt”和“red”匹配的文档。所以下面的所有文件都会得到回复:
1.带有标题的文档包含所有3个单词,例如Title =“Gucci Modern Shirt Red”或“Gucci blue shirt”...
2.标题=“Gucci 古典衬衫”和颜色=“红色”的文档
3.Category = "mens shirt" AND Brand = "gucci" AND Color = "red" 的文档
4.等等..
我知道 Lucene 支持运算符 + 必须执行搜索查询。比如我可以把上面的关键词翻译成查询“+gucci +shirt +red”,那么我相信上面例子(1)的文档肯定会得到响应。但它适用于上述情况(2)和(3)吗?