Semantic search functions further to LiDAR, as it penetrates the information’s lexical floor to find deeper meanings. In “Part 1: Fundamental Power” and “Part 2: Key Details,” we explored the fundamentals of FileMaker’s semantic search. Now, let’s examine greater advanced packages of this selection to light up our facts.
We’ll offer an example of “unified seek” across more than one tables the use of herbal language to behavior a semantic search. Additionally, we will extend this to illustrate “unified seek + movements.” You’ll discover downloadable demo/academic files for each examples.
Unified Search
If you have formerly carried out a unified search in FileMaker (like my earlier “Things” example), you understand the fee of enabling customers to search across more than one tables with no need to understand wherein the statistics is stored. (While Perform Quick Find lets in similar functionality, it operates at the field stage.)
With embeddings in FileMaker 2024, unified search has emerge as even extra effective. In this demo, all embeddings for exclusive records tables are housed in a shared Embedding table, allowing semantic searches via the Perform Semantic Find characteristic on that table.
Unified Search Example
I’ve created a demo answer that I will percentage for download. This app manages 3 primary entities: Assets, People, and Projects. It is designed to facilitate unified search and make use of FileMaker’s semantic search capabilities.
For example, once I search for “water,” the top 10 consequences encompass:
1 .Asset: A video associated with browsing.
2.Four Projects: Direct connections to water-related topics.
3. People: Individuals with pursuits which include aquascaping and scuba diving.

Users can conduct simultaneous searches throughout all tables the usage of herbal language, ensuring that the maximum relevant effects appear at the pinnacle in their search results. This functionality frees them from desiring to apprehend the underlying records shape and allows them to pass the nuances of ways text was at the start formatted in the statistics.
It’s an exciting feature, and I’m eager to integrate this into all my applications. Now, allow’s explore a few essential deployment components.
Storage
I haven’t discussed storage but. Keep in mind that embeddings require space. The length of every embedding is determined with the aid of the size of your selected embedding version instead of the text size being embedded. Therefore, you could assume a steady garage footprint for all embeddings. For instance, with 1,536 dimensions, every embedding is about 179 KB.
It’s advisable to shop embeddings in containers for higher overall performance and decreased garage necessities. Utilizing outside storage for these packing containers can assist hold a compact app size, even though it’s critical to recollect the performance implications mentioned beneath.
This is wherein unified seek will become useful. By consolidating all embeddings into a unmarried table, you handiest want to configure external storage as soon as, rather than for every statistics table. Additionally, you handiest want to add a calculated cosine similarity area in one location.
Flexibility
Unified search may be effective in some contexts, but not all. In the demo document, take a look at the searches accomplished from the People or Projects displays. While those semantic searches utilize the shared Embedding table, the consumer’s context restricts effects to a particular statistics table.
You could also script an preliminary locate at the Embedding table to limit the outcomes to a sure desk (e.G., all lively initiatives) after which use the “Record set: Current discovered set” option in Perform Semantic Find to look within that unique subset.
Performance
As formerly mentioned, storing embeddings in packing containers is extra efficient than keeping them as textual content. But what about other performance factors?
Firstly, storing box embeddings externally may also cause slower performance as compared to retaining them in the report. However, keep in mind that box data isn’t blanketed with a file when a user downloads it. This is important due to the fact embedding numerous tables ought to inflate storage, however users shouldn’t suffer overall performance penalties for downloading useless records every time they get entry to a document. FileMaker’s container garage guarantees that box information is only downloaded when required, together with during a semantic search.
Secondly, powerful semantic seek closely is predicated on strong hardware. Testing on a quad-middle Intel MacBook Pro, the overall performance changed into first-rate with only a few hundred to a few thousand records. However, overall performance started to degrade drastically past 50,000 information and became specially slow past 100,000 statistics (it is important to note that the number of data being searched influences overall performance extra than the full wide variety of records in the desk).
| Records Searched | First Search | Subsequent Searches |
|---|---|---|
| 50,000 | 22 seconds | 3 seconds |
| 75,000 | 35 seconds | 5 seconds |
| 100,000 | 124 seconds | 31-36 seconds |
Unfortunately, those metrics aren’t encouraging, and they are unaffected by latency. How does it perform when hosted on FileMaker Server?
| Records Searched | First Search | Subsequent Searches |
|---|---|---|
| 50,000 | 3 seconds | 3 seconds |
| 75,000 | 12 seconds | 3 seconds |
| 100,000 | 16 seconds | 3 seconds |
Here, the hosted document on a more effective system suggests better performance at a hundred,000 records than the neighborhood report on my much less succesful gadget at simply 50,000 statistics.
These records are based totally on direct searches inside the embedding table. However, what takes place whilst we encompass searches via relationships (e.G., searching from the Project table even as embedding facts in a associated Embedding table)? The consequences aren’t right. Even with 5,000 statistics on the hosted system, it took 220 seconds, and at 100,000 facts, I needed to stop the process after an hour.
To address the performance issue on this situation, I may want to first retrieve all embedding records related to projects, behavior my semantic search within the ones facts, and then use “Go to Related Records” to return to a layout based on the Project table. This technique seems cumbersome, and some other worry arises: I would lose the semantic search’s sorting order upon achieving the ones assignment data, requiring me to recreate it.
In summary, unified seek aggregates information from various tables right into a unmarried table, which certainly leads to an increase in general record counts. Higher report counts typically result in slower overall performance.
Thus, for unified seek particularly, and semantic search in standard, it’s vital to utilize the best possible hardware and strategically restriction the information to be searched on every occasion possible.
Tutorial / Demo File
You can down load the Beezwax Unified Search demo report (26.9 MB) from beneath. This FileMaker (.Fmp12) demo calls for FileMaker 2024 (v21.X). For the demo files in Part 3, in addition to those in Parts 1 and 2, you’ll want to provide your very own AI credentials (via the tools icon within the higher right). If you’re the use of non-OpenAI credentials, you’ll additionally want to configure the LLM Embedding Model discipline and run the embeddings script to create compatible embeddings.
Unified Search + Actions
In the next demo, I extend the Unified Search to comprise a desk of moves. The essence of unified seek is that customers shouldn’t want to think about how the facts is prepared. Adding actions complements this concept similarly: customers shouldn’t need to differentiate among finding records and executing duties. With a unified semantic search, we can present customers with a various set of alternatives related to their seek queries.
For instance, if I search for “installation AI model,” the pinnacle result is the “Configure AI” motion.

When I click the “Execute this Action” button, it opens the AI configuration window.

To reiterate the power of this technique: the consumer didn’t need to specify whether or not they were seeking to locate some thing or to do something. For any seek time period, a user is probably searching for facts statistics, or they is probably searching for documentation on a way to perform an motion, or they might be seeking to access the movement itself. With a semantic search (and a few UX design love) the app can surface a complicated combination of outcomes to the user and let the consumer decide which result nice satisfies their need.
The above instance action is in reality executing a navigation script. But what if we want something a piece greater complex? Next I search for “chart by nation”. The first end result is the “View People Chart” motion, because of its semantic similarity to “Chart” inside the action call, and as it understands that “People” relate to the “nation” discipline.
Executing that action produces this chart, a count of people by state.

So what’s going on here? The semantic search surfaced the “View People Chart” action, but from there I hardcoded the action itself:
- Go to the People layout.
- Show all records.
- Sort by the State field.
- Build up a count of people by state.
- Open a card window to display a chart with the summarized data.
Generating a chart from a search time period is cool, however now not if it continually assumes I need to summarize by using kingdom (and I wouldn’t want to create an action record for every permutation of chart I would possibly want to aid). So next I look for “graph via game”. The semantic seek surfaces that same “View People Chart” action (notice that this time I looked for “graph” rather than “chart”).

If I execute that action (the same action I executed in my previous “chart by state” example), I get this chart, a count of each person within each sport-related hobby.

So, how does the app accomplish this? It makes use of semantic search to perceive the “View People Chart” action. When the consumer clicks the “Execute this Action” button, the app applies the semantic which means of the search term in additional methods:
- The script calculates the cosine similarity among the search phrase “graph with the aid of game” and the term “interest,” identifying a robust similarity. This leads to a focal point on a interest-centric summary as opposed to a nation-centric one.
- The script conducts a semantic seek on a desk of interest statistics, concentrated on those pastimes that showcase a excessive cosine similarity with the search time period, effectively finding pursuits associated with “game.”
This means the search term “graph by sport” was utilized for three distinct semantic analyses:
- To locate the “Chart by Person” action record.
- To determine that the chart should be based on the Hobby field.
- To pinpoint specific hobbies to include in the chart.
Earlier, I stated that a user might need to discover some thing or take motion. Notice how the term “graph by way of recreation” addresses each desires: it allows the person to generate a chart of interests (taking action) while additionally specializing in a specific subset of humans—people with sports activities-related hobbies (finding some thing). It’s stunning that users can specific their wishes of their very own terms, even as the app efficaciously translates which elements of the hunt relate to movements versus information retrieval.
Control Group vs. Test Group
Beneath the sophisticated scripting and layouts, FileMaker apps rely upon a database to provide structure. This database organizes the information without needing to understand its content material. Specifically, whilst managing fields that incorporate big textual content strings, the onus of information typically falls at the users.
Throughout this collection, I’ve emphasized that semantic search liberates users from wanting to remember how records is phrased as it makes a speciality of the which means of strings in place of their literal wording. In different words, semantic seek allows customers to make use of a string they apprehend (their seek time period) to discover a string they may now not absolutely draw close (like surprising text).
Reflecting at the Resumes example from Part 1, the person’s seek term changed into some thing they were now not familiar with (a candidate’s resume), while the discovered information had been probably more acquainted (precise activity postings). Thus, while semantic search is frequently used to find records, let’s have a look at how it could additionally help users understand the which means behind their seek phrases. For this situation, we can consider it extra as an “enter” than a mere “seek time period.”
Consider a customer within the weather generation quarter who desires to review a set of instructional papers relevant to their subject, irrespective of whether the papers are properly tagged or posted in another discipline. It’s unrealistic to assume the client to read every paper, so how can a FileMaker app assist?
First, the patron identifies a subset of papers they already recognise to be pertinent. For instance, they tag one hundred papers with “direct air capture,” which we’ll confer with because the control group.
Next, we need to ensure that this manipulate group consists of papers with similar situation be counted. We create embeddings based on the identify and abstract of every paper inside the control group and evaluate them to generate rankings. For any given paper, we calculate its score by means of acting a semantic search to discover papers tagged with “direct air capture” that have a cosine similarity of zero.8 or better with the paper in query. We count on to discover the paper itself and as much as 99 others, resulting in a rating starting from 1 to 100, where a rating of one hundred indicates that the paper is at the least eighty% just like all a hundred of the “direct air capture” papers.

Here I’ve sorted the manage institution with the lowest score (ninety five%) on the top. Most papers score 100%. So that reaffirms that indeed the manipulate group includes intently associated papers. I’ve highlighted a record that doesn’t consist of “direct air seize” in its identify, but nevertheless rankings higher than 5 papers within the control organization that do encompass that string of their titles.
Third, we want to feature a check organization. These are papers the customer hasn’t study, and so it’s miles unknown whether or not they relate to “direct air capture”. We plug in 50 papers, and ask for that same semantic evaluation to the control institution (papers in the take a look at group might be scored within the range zero…one hundred, because it’s feasible to relate to no papers in the manage institution).

On the left, we’ve the 50 papers within the check institution along with their ratings. For example, “Beyond fossil gasoline-driven nitrogen differences” simplest rankings 19%, indicating it shares a excessive similarity with just 19 of the 100 papers within the control group, making it much less relevant. In evaluation, “Biomass-primarily based chemical looping technology: the good, the bad, and the future” scores an excellent ninety six%, making it a strong candidate for evaluation.
Now, imagine an automated device that scans digital repositories for these papers, makes use of semantic search to assess a new paper’s relevance to particular subjects, and presents the highest-scoring papers to our purchaser. This manner, our app successfully sifts thru a massive amount of content, most effective alerting the purchaser to the most pertinent papers. Just think about the hours saved when the consumer can listen solely at the most promising research.
The app ought to move even similarly. By using semantic seek, we are able to explore subtopics like “adsorbent materials.” Additionally, with the present AI integration for “Insert from URL,” we should comprise sentiment evaluation (e.G., “how does the paper depict direct air capture?”), subject matter place critiques, and different in-intensity analyses of the papers. Whether it’s educational articles, research papers, or any evaluation where know-how the relevance of latest records is important, semantic search is prepared to assist.
It’s vital to be aware that this method isn’t approximately education a model. The app doesn’t really comprehend “direct air capture” or solution broader questions on the facts. However, for our wishes, it may correctly “examine” a paper’s summary and determine if it meets our relevance standards.
Special way to my pal John Cornwell for highlighting this state of affairs and sharing links to all the papers.
For a visible illustration of this concept, take a look at out Michael Wallace’s 3D model of semantic search, particularly around the 10:fifty nine mark. This model visually illustrates the geographic courting between a take a look at document and the control group, that’s fascinating.
Summary
If you are keen to integrate FileMaker’s semantic search into your answers however are worried about the complexity, I have properly news: in its most trustworthy implementation, growing embeddings for 500 information can take as low as 5 mins. It’s surprisingly speedy—like sprinkling magic dust to your app’s search abilties. It’s so simple that it feels almost like a cheat.
Semantic seek complements an app’s fundamental characteristic of data retrieval. Users can now specific their information desires in their personal words, and our apps will be better geared up to apprehend what they’re searching for. Data languishes in obscurity, so let semantic seek light up it.



