我正在寻找社区中的想法。我正在使用SOSL,但是我有一个关于不搜索确切短语的问题。我想搜索一下短语。
SOSL
string searchQuery = 'FIND {'+searchText+'} IN ALL FIELDS RETURNING Idea(Id, title, body, categories, createddate, lastmodifieddate)';
那么有人可以帮我搜索一个短语的单词吗?
答案 0 :(得分:3)
如果您在APEX中使用SOSL,则不需要查找文本周围的花括号(它们用于API)。
假设您正在使用APEX,那么我们假设您搜索的短语“非常棒”。这将是APEX语法:
List<Sobject[]> awesomeResults = [FIND 'awesome' IN ALL FIELDS RETURNING Idea(Id, title, body, categories, createddate, lastmodifieddate)'];
如果要动态创建SOSL,请使用Search.query(query_string)
方法。如果您这样做,请确保转义查询字符串中的'
。
文档非常适合这些功能:
答案 1 :(得分:0)
如果您要搜索词组的单词,那么您的查询将如下所示
string searchQuery = 'FIND \'' +searchtext+'*\' IN ALL FIELDS RETURNING Idea(Id, title, body, categories, createddate, lastmodifieddate)';
这里的searchtext
是一个字符串。
我认为每个想要基于动态价值进行搜索的人都会有所帮助。
答案 2 :(得分:-1)
如果searchText是动态的,你可以像这样使用它:
参数searchText
:
冒号
string searchQuery = 'FIND :searchText IN ALL FIELDS RETURNING Idea(Id, title, body, categories, createddate, lastmodifieddate)';