{"id":10974,"date":"2026-05-23T19:30:06","date_gmt":"2026-05-23T11:30:06","guid":{"rendered":"https:\/\/aeosub.com\/vecpost\/"},"modified":"2026-05-23T19:30:06","modified_gmt":"2026-05-23T11:30:06","slug":"vecpost","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/vecpost\/","title":{"rendered":"VecPost AI Search for Posts"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/vecpost\/assets\/icon-256x256.png?rev=3545010\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/krunalbalas\/\" target=\"_blank\" rel=\"noopener\">krunalbalas<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.1 \/ 6.9.4<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-23 10:33am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/vecpost\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">AI-powered semantic search for WordPress posts. Understands meaning, not just keywords. Powered by OpenAI or Google Gemini.<\/div>\n<p>VecPost AI Search for Posts replaces WordPress&#8217;s default SQL LIKE search with vector-based semantic search. Instead of matching exact words, it understands the <em>meaning<\/em> of a search query.<\/p>\n<p><strong>Example:<\/strong> A user searching &#8220;heart workouts&#8221; will find your post titled &#8220;Best cardiovascular exercises&#8221; &#8211; even though no words overlap &#8211; because the meanings are similar.<\/p>\n<h4>How It Works<\/h4>\n<ol>\n<li>When you publish a post, the plugin sends its content to your chosen AI provider (OpenAI or Google Gemini) to generate a vector embedding &#8211; a list of numbers that represents the meaning of the text.<\/li>\n<li>These numbers are stored in your database.<\/li>\n<li>When a user searches, their query is also converted to numbers, and the plugin finds posts whose numbers are closest &#8211; meaning most semantically similar.<\/li>\n<\/ol>\n<h4>Features<\/h4>\n<ul>\n<li>Semantic search powered by OpenAI (<code>text-embedding-3-small<\/code> or <code>text-embedding-3-large<\/code>) or Google Gemini (<code>gemini-embedding-001<\/code>)<\/li>\n<li>Hybrid re-ranking: combines semantic similarity with keyword matching for best results<\/li>\n<li>Gutenberg block and shortcode <code>[vecpost_semantic_search]<\/code> for easy placement<\/li>\n<li>Bulk indexer with progress bar for existing posts<\/li>\n<li>WP-CLI support: <code>wp vecpost-semantic-search index<\/code>, <code>wp vecpost-semantic-search status<\/code>, <code>wp vecpost-semantic-search search \"query\"<\/code><\/li>\n<li>Configurable scoring thresholds via Settings -&gt; VecPost &#8211; AI Semantic Search for Posts<\/li>\n<li>Automatic re-indexing when you switch embedding models<\/li>\n<li>Results cached via WordPress object cache (Redis\/Memcached compatible)<\/li>\n<\/ul>\n<h4>Third-Party Services<\/h4>\n<p>This plugin sends post content to external AI APIs to generate embeddings. By using this plugin, you agree to the terms of service and privacy policies of your chosen provider:<\/p>\n<ul>\n<li><strong>OpenAI:<\/strong> https:\/\/openai.com\/policies\/privacy-policy | https:\/\/openai.com\/policies\/terms-of-use<\/li>\n<li><strong>Google Gemini:<\/strong> https:\/\/policies.google.com\/privacy | https:\/\/ai.google.dev\/terms<\/li>\n<\/ul>\n<p>No data is sent without your API key being configured. Data is only transmitted when posts are published or during bulk indexing.<\/p>\n<h4>Performance Note<\/h4>\n<p>Semantic search requires loading all embeddings into PHP memory for comparison. This works well for sites with up to approximately 1,500 posts. For larger sites, a dedicated vector database (pgvector, Qdrant, or Pinecone) is recommended.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI-powered semantic search for WordPress posts. Understands meaning, not just keywords. Powered by OpenAI or Google Gemini.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[821,1854,558,1855,1856,555],"class_list":["post-10974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-ai-search","tag-embeddings","tag-openai","tag-search","tag-semantic-search","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10974"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10974\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}