Endeca在多个字段上搜索查询

时间:2013-11-27 15:58:52

标签: endeca

如何在多个字段的组合上创建Endeca查询[就像在sql查询中的where子句]。假设我们有三个索引的字段是 -

  1. empId
  2. empName
  3. empGender
  4. 现在,我需要一个像“其中empName喜欢's%'和empGender =男性”的查询

    感谢。

2 个答案:

答案 0 :(得分:4)

首先,

Advanced Development Guide中的结帐Record Filters

如果您尝试在属性上使用Record Filter,则需要在Developer Studio中为该属性显式启用该属性,而您的Dimensions将自动能够应用Record Filter。当您有明确的值进行过滤时,这将有所帮助,例如empGender

您的Record Filter可以如下所示:

Nr=AND(empGender:male)

您可以进一步使用Ntk参数指定要搜索的字段,因此假设您的empName字段已启用进行通配符搜索(在Developer Studio中配置),搜索此字段将如下所示:

Ntk=empName&Ntt=s*

因此,假设您的属性配置正确,您上面的示例最终可能会显示如下:

Nr=AND(empGender:male)&Ntk=empName&Ntt=s*

为了更进一步,您可以一起指定Search Filters(即Ntk + Ntt个参数)。我没有尝试使用通配符,因此您需要自己确认,但要将Search Filters|

分开。
Ntk=empName|empId&Ntt=s*|1234*

我建议您在参考应用程序中手动构建查询,以确认您获得了预期的结果,然后开始在您的应用程序中对其进行编码。

答案 1 :(得分:0)

radimbe,这个用例的记录过滤器的问题是它们需要精确。这意味着你不会得到纠正,词库扩展,不区分大小写或阻止。用户输入这样的精确信息的可能性很小。

Saraubh,您可以进行布尔搜索来进行OR文本搜索查询。您还可以使用Endeca Query Language指定一组超出布尔搜索的复杂布尔逻辑,它将包含拼写纠正,词干等。

总的来说,我认为对于这样的应用程序,您应该不再同时搜索特定的单个字段,并利用维度的分面功能来指导用户。此外,按重要性顺序同时搜索多个字段的搜索框实际上是为这种应用程序提供简化用户界面的方法。