【发布时间】:2018-05-09 08:38:00
【问题描述】:
是否可以使用标题和内容的关键字来搜索 Salesforce 知识文章?我知道rest api有这个
https://yourInstance.salesforce.com/services/data/v37.0/search/?q=FIND
但我对查询的内容有疑问。请帮我。谢谢
【问题讨论】:
标签: api salesforce salesforce-lightning
是否可以使用标题和内容的关键字来搜索 Salesforce 知识文章?我知道rest api有这个
https://yourInstance.salesforce.com/services/data/v37.0/search/?q=FIND
但我对查询的内容有疑问。请帮我。谢谢
【问题讨论】:
标签: api salesforce salesforce-lightning
FIND 是 SOSL 的一部分。这是一个“全文搜索”引擎,其语法与“普通”SQL / SOQL 不同。 SOSL 是全局搜索的动力(经典 UI 和 Lightning UI 中的页面顶部)
完整的语法看起来有点吓人:https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_syntax.htm(此链接指向 SOQL 和 SOSL 参考指南,还有一个比较章节)
可以在此处找到一些示例搜索(在普通对象上,没有真正的知识特定):https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_examples.htm
一些特定于知识的东西...从这两个开始并进行实验:
FIND {Keyword}
RETURNING KnowledgeArticleVersion (Title WHERE PublishStatus='Online' and language='en_US')
FIND {some search words} IN ALL FIELDS RETURNING Faq__kav(KnowledgeArticleId, Title, Summary, UrlName WHERE PublishStatus ='Online' AND Language = 'en_US' LIMIT 5) WITH SNIPPET(target_length=300)
对 Knowledge 的查询需要指定文章状态(已发布/草稿/存档的)和语言代码,因此即使是基本形式,您也需要 WHERE 子句。第一个示例将扫描您组织中的所有文章,但如果您有多种文章类型,您可能需要明确指定类型。
是的,现在至少你有一些阅读材料。如果您遇到特定问题,请尝试查看Trailhead 并发布另一个问题?
【讨论】:
/services/data/v41.0/search?q=FIND+{Uni}+IN+ALL+FIELDS+RETURNING+Account(Id,+Name,+Description),+Contact(Id,+LastName,+Email),+User。在具有相同预加载数据的典型开发人员版本中,它应该返回(除其他外)亚利桑那大学、联合石油和天然气 + 他们的联系人......
FIND+{"\(415\)+901\-7000"}+IN+PHONE+FIELDS+RETURNING+Account(Id) 用于完全匹配(双引号)和转义特殊字符,如括号和破折号。