Intelligent Search - Post

Enhancing content discovery with an intuitive approach, allowing users to explore content based on context rather than just keywords. With the semanticSearchPosts() function, the Amity SDK provides a LiveCollection of search results that prioritize relevance to the user. By utilizing advanced context recognition, semantic search enriches the discovery experience, helping users find content they might not have initially been aware of, thereby boosting community engagement.

This API supports searching through text and image posts. You can search the entire network or narrow your scope to a specific community feed or user feed.

Enable the Feature

To use this feature, please contact our support directly.

API Parameters

You can access this feature through the SDK or by making direct HTTP API calls. Below is an explanation of the function parameters:

Search Term

  • query: The search term. You can enter words, phrases, or sentences.

Target Filtering

By default, the search will include all targets where the user has permission to view posts. However, you can narrow the search scope to a specific target by specifying both the targetType and targetId together.

  • targetType: Defines the type of target where the post was created, either community or user feed.

  • targetId: The ID of the designated target, i.e, community id when targetType is community; user id when targetType is user.

Post Filtering

You can choose to filter specific post types or based on parent-child relationship.

  • matchingOnlyParentPost

    • When set to true, only parent posts are included, excluding child posts from the search.

    • When set to false, both parent and child posts are included in the search.

  • postTypes: Filters posts by type. Currently supports filtering for text and image posts.

Example Use Cases

Search for Text Posts

When the user searches for "ice cream," the output may include posts ranked by their relevance score. For example:

Text Post 1st: "I love ice cream."
Text Post 2nd: "Ice cream is my favorite dessert."
Text Post 3rd: "Nothing beats a scoop of ice cream on a hot day!"
Text Post 4th: "I enjoy trying different types of pastries."
Text Post 5th: "Cooking is a great way to relax after a long day."

The following code snippet demonstrates how to search for text posts across the entire network.

Search for Image Posts

When the user searches for "ice cream," the output may include posts ranked by their relevance score. For example:

Search Result Score

This API returns a score for each item, ranging from 0 to 1. The score is calculated based on two factors—lexical and semantic—which are weighted differently.

  • Lexical score: contributes 30% of the total score. If a post contains text that matches the search term, it will receive a higher lexical score.

  • Semantic score: contributes 70% of the total score. The more relevant a post is to the search term in meaning, the higher its semantic score will be.

Filtering Results by Minimum Score

By default, all matched items are included, even if they have a low score. However, you can adjust the minimum score filter based on the content and your specific use case. Any item with a score lower than the specified threshold will be excluded from the results.

The API can be found at Network Settings - Semantic Search (requires admin permission).

Limitations

  • The search only considers the context of individual posts and does not account for aggregation contexts, such as the relationship between parent posts and their children or comments within a post.

  • User recent activity is not factored into determining relevance.

  • Currently, only text and image posts are supported.

Last updated