Dalet Flex supports performing a semantic search on assets. To enhance content retrieval, semantic search uses queries that are similar in meaning to the actual content of the Asset Name, Description and other string metadata fields (as configured) rather than just matching keywords. Semantic search understands synonym recognition, phrase interpretation, entity recognition etc in 50+ languages, allowing you to search using a more general query to find useful results.
Prerequisites
In the context of Dalet Flex, to enable and work with semantic search, you must:
Set the KV flag flex/shared/featureToggles/search/ai/semanticSearchEnabled to true
Ensure dalet-ai-service is up and running
Restart flex-search-app , if still not showing, restart flex-globalheader-app, flex-fmp-app
Run a full re-index to allow the indexer enhance the index with embeddings required for semantic search
Enabling semantic search
When the Consul KV flag flex/shared/featureToggles/search/ai/semanticSearchEnabled is set to true, the semantic search toggle button is displayed in the Search Bar in FlexMAM.
Click the icon to perform a semantic search.
By default, when the semantic search button is enabled and you type in "query", Dalet Flex, performs a semantic search and adds the FQL semantic search operator to create this FQL query:
<query> becomes FQL ai-search(<query>)
When the Consul KV flag flex/shared/featureToggles/search/ai/semanticSearchEnabled is set to false, the semantic search toggle button is NOT displayed in the Search Bar in FlexMAM.
NOTE: Advanced FQL type search queries cannot be used when semantic search is enabled.
Enabling hybrid semantic search
Hybrid search allows users to perform the existing keyword search together with a semantic search. This means that results that were shown traditionally are returned together woth semantic search results.
When the Consul KV flag flex/shared/featureToggles/search/ai/defaultToHybrid is set to true, the default semantic search performed by toggling the star icon is a hybrid search so that any query used is searched using both semantic search and lexical (traditional) search. This means that when you type in "query", Dalet Flex creates this FQL query
"query" becomes FQL (<query> OR ai-search(<query>)
When Consul KV flag flex/shared/featureToggles/search/ai/defaultToHybrid is set to false, simple semantic search is performed.
After changing the Consul KV value, restart dalet-ai service, fmp-app, flex search app, global header app.
Complex search
For more complex searches, semantic search can be used with filters and and the semantic toggle setting is persisted in Saved Searches.
For example (ai-search(Pope Francis) AND (Pope)) AND fileAssetType=Image returns results that semantic match the phrase "Pope Francis" and contain the term "Pope" in any attribute/searchable metadata field, along with a filter to fetch only the images.
NOTE: When semantic search is disabled, you cannot perform semantic search using the FQL operator ai-search.
Search Results
When semantic search is toggled on, column sort is disabled and results are ordered by relevance.
For hybrid semantic search, results that are actual lexical matches appear above semantic search results.
Comments
2 comments
hello,
I don't think indexelastic and searchelastic should be restarted, but as developer said on this thread:
Rahulgiri GOSWAMI: semanticSearch is only visible if we set KV flex/shared/feature... | Flex Media Platform > flex-questions | Microsoft Teams
feature enablement is with KV and after the first app to restart is flex-search-app
if that doesn't work, continue with flex-globalheader-app and last flex-fmp-app
then proceed with full reindex
Gustavo Bonasso thank you.
Please sign in to leave a comment.