How to remove a field from search consideration for one pipeline
We are a Salesforce shop. In our environment, we publish knowledge so that it can be viewed by anonymous users who are not logged in.
We have a pipeline for this search called PublicSearch. We have an internal search for employees which we call AgentSearch. Both of these pipelines include Salesforce Knowledge as one of the sources.
Internal Notes on Salesforce knowledge should not be part of search consideration on PublicSearch, as these internal notes are not ever shown to the user when they view articles and contains content that the end user should never be able to see or search for.
Internal users, can view this info while logged in to SF and they should be able to search this field in our Coveo AgentSearch pipeline because they are employees and should be able to find items with the AgentSearch pipeline by searching for things that may appear in the internal notes.
I have been asking around on how to implement this and have not gotten a good answer yet. Seems that there should be a way to specify what fields are part of search consideration, at the pipeline level. I have not found any way to do this.
The only workaround I can think of is to have a duplicate source, because the only way I have found to do this is at the source, not at the pipeline.
Does any one have a similar situation, and do you have any other way to accomplish this? I am not a full admin in our environment so there is much I cannot see or try
I believe the documentation you are looking for is this one: http://www.coveo.com/go?dest=cloudhelp&lcid=9&context=143
As your condition, you can simply enter something like `NOT @fieldtoignore`. This makes it so that any item with this field will be ignored by your pipeline. I believe this is what you are trying to achieve. If you need more information on how to enter the right condition, I welcome you to check the Coveo Cloud Query Syntax Reference: http://www.coveo.com/go?dest=cloudhelp&lcid=9&context=357
Let me know if this helped!
We dont support Field Level security, as you mention, you will have to setup 2 separate sources to achieve what you want. Further details on supported security features can be found at https://onlinehelp.coveo.com/en/cloud/salesforce_security_in_your_coveo_organization.htm
For the suggestion of using a condition of
is there a way to enter that so that applies to any and all searches using one pipeline?
I might have found a way for you to do this.
If you check the Query Pipeline Language (QPL) page, you can add conditions and ranking expressions based on identities.
For instance, you could add a condition:
Then, you add a new ranking expression to _lower_ the ranking of results that matches the query, and set this specific condition. like the following:
So you cannot directly affect the "ranking modifier" of a field, you cannot directly ignore a field for a specific type of identity, but this should at least weight down the documents that pop up _because_ of this field when the user is anonymous.