Ege Ersoz
11/14/2024, 9:22 PM%{
"enable_highlight_v1" => "false",
"facet_by" => "available_majors.area_of_study,available_majors.major_name,available_sports.sport_name",
"facet_return_parent" => nil,
"filter_by" => "is_main_campus:true && is_operating:true",
"max_facet_values" => 1500,
"page" => 1,
"per_page" => 30,
"q" => "Alabama Agricultural and Mechanical University",
"query_by" => "name,alias",
"sort_by" => "undergraduate_total_count:desc"
}
I have a document with "name": "Alabama Agricultural and Mechanical University"
but the resulting set does not include it. It includes six documents with various partial matches:
highlight: %{
name: %{
snippet: "<mark>University</mark> of South <mark>Alabama</mark>",
matched_tokens: ["University", "Alabama"]
}
}
...
highlight: %{
name: %{
snippet: "<mark>University</mark> of North <mark>Alabama</mark>",
matched_tokens: ["University", "Alabama"]
}
}
...
highlight: %{
alias: %{
snippet: "Northeast, NACC, Northeast <mark>Alabama</mark> State Junior College, Northeast <mark>Alabama</mark> State Community College",
matched_tokens: ["Alabama", "Alabama"]
},
name: %{
snippet: "Northeast <mark>Alabama</mark> Community College",
matched_tokens: ["Alabama"]
}
}
Can someone explain what's going on here? I'd expect the search engine to prioritize exact matches, followed by partial matches. Do I need to configure the parameters differently?Jason Bosco
11/14/2024, 9:52 PM"sort_by" => "undergraduate_total_count:desc"
Essentially overrides the default sorting by text relevance, and uses this field to do a hard sortJason Bosco
11/14/2024, 9:53 PM"sort_by" => "_text_match(buckets: 10):desc,undergraduate_total_count:desc"
Here's more context: https://typesense.org/docs/guide/ranking-and-relevance.html#ranking-based-on-relevance-and-popularityEge Ersoz
11/14/2024, 11:13 PMsort_by
but the result is the same:
%{
"enable_highlight_v1" => "false",
"facet_by" => "available_majors.area_of_study,available_majors.major_name,available_sports.sport_name",
"facet_return_parent" => nil,
"filter_by" => "is_main_campus:true && is_operating:true",
"max_facet_values" => 1500,
"page" => 1,
"per_page" => 30,
"q" => "Alabama Agricultural and Mechanical University",
"query_by" => "name,alias",
"sort_by" => "_text_match(buckets: 10):desc,undergraduate_total_count:desc"
}
Jason Bosco
11/15/2024, 1:45 AM"name": "Alabama Agricultural and Mechanical University"
?Ege Ersoz
11/15/2024, 2:12 AMJason Bosco
11/15/2024, 6:07 AMis_main_campus
or is_operating
which you've used in the filter_by
expression. So it doesn't match the filter criteria provided and is not being returned because of thatJason Bosco
11/15/2024, 6:08 AMq
parameter one by one, which is why you're seeing results with partial matches, since they probably at least match the filter_by providedEge Ersoz
11/15/2024, 5:03 PM