【发布时间】:2019-01-05 09:22:08
【问题描述】:
我有一个带有“productOptions”字段的产品搜索索引,其中包含序列化的 JSON,这意味着它可能包含没有选项的产品的空数组,或者包含产品选项的产品选项的数组:
-
[] [{ optionId: "", ... }]
当我在 Luke 中尝试查询 +productOptions: "[]"(使用 StandardAnalyzer)时,我没有得到任何匹配项。我的印象是,只要有完全匹配,StandardAnalyzer 就会搜索未分析的字段 - 所以我不明白为什么我没有得到任何点击。但是,如果我切换到 KeywordAnalyzer,我确实会获得点击,但不能使用 KeywordAnalyzer,因为我正在查询产品选项作为需要 StandardAnalyzer 的更复杂搜索查询的一部分。
如何编写一个查询来查找所有没有选项的产品(即 productOptions == [])?
注意:我无法控制索引过程,因此无法控制被索引的值。
【问题讨论】:
-
好吧,你无法控制索引,但是你了解索引时使用什么样的分析器吗?
-
@Mysterion 因为整个索引过程发生在第三方插件中,该插件又使用 Umbraco 检查我不能 100% 确定,但从我在源代码中看到的应该是标准分析器。