h1 Posts = form_for :posts, ~p"/posts", [method: "get", class: "hform", enforce_utf8: false], fn f -> .field = text_input f, :pq, name: :pq, value: @conn.params["pq"], class: "input hform__text", placeholder: "Search posts", autocapitalize: "none" = submit "Search", class: "hform__button button" .fieldlabel ' For more information, see the a href="/pages/search_syntax" search syntax documentation ' . Search results are sorted by creation date. h2 Search Results = cond do - Enum.any?(@posts) -> - route = fn p -> ~p"/posts?#{p}" end - pagination = render PhilomenaWeb.PaginationView, "_pagination.html", page: @posts, route: route, params: [pq: @conn.params["pq"]], conn: @conn = for {body, post} <- @posts, post.topic.hidden_from_users == false and can_view_communication?(@conn, post) do div h3 =<> link post.topic.forum.name, to: ~p"/forums/#{post.topic.forum}" | » =<> link post.topic.title, to: ~p"/forums/#{post.topic.forum}/topics/#{post.topic}" | » - post_link = ~p"/forums/#{post.topic.forum}/topics/#{post.topic}?#{[post_id: post.id]}" <> "#post_#{post.id}" = if post.topic_position == 0 do =<> link "Topic Opener", to: post_link - else =<> link "Post #{post.topic_position}", to: post_link = render PhilomenaWeb.PostView, "_post.html", body: body, post: post, conn: @conn .block .block__header.block__header--light.page__header .page__pagination = pagination .page__info span.block__header__title = render PhilomenaWeb.PaginationView, "_pagination_info.html", page: @posts, conn: @conn - assigns[:error] -> p ' Oops, there was an error evaluating your query: pre = assigns[:error] - true -> p ' No posts found! h3 Default search p ' If you do not specify a field to search over, the search engine will ' search for posts with a body that is similar to the query's em word stems ' . For example, posts containing the words code winged humanization ' , code wings ' , and code> spread wings ' would all be found by a search for code wing ' , but code> sewing ' would not be. h3 Allowed fields table.table thead tr th Field Selector th Type th Description th Example tbody tr td code author td Literal td Matches the author of this post. Anonymous authors will never match this term. td code = link "author:Joey", to: ~p"/posts?#{[pq: "author:Joey"]}" tr td code body td Full Text td Matches the body of this post. This is the default field. td code = link "body:test", to: ~p"/posts?#{[pq: "body:test"]}" tr td code created_at td Date/Time Range td Matches the creation time of this post. td code = link "created_at:2015", to: ~p"/posts?#{[pq: "created_at:2015"]}" tr td code id td Numeric Range td Matches the numeric surrogate key for this post. td code = link "id:1000000", to: ~p"/posts?#{[pq: "id:1000000"]}" tr td code my td Meta td code> my:posts ' matches posts you have posted if you are signed in. td code = link "my:posts", to: ~p"/posts?#{[pq: "my:posts"]}" tr td code subject td Full Text td Matches the title of the topic. td code = link "subject:time wasting thread", to: ~p"/posts?#{[pq: "subject:time wasting thread"]}" tr td code topic_id td Literal td Matches the numeric surrogate key for the topic this post belongs to. td code = link "topic_id:7000", to: ~p"/posts?#{[pq: "topic_id:7000"]}" tr td code topic_position td Numeric Range td Matches the offset from the beginning of the topic of this post. Positions begin at 0. td code = link "topic_position:0", to: ~p"/posts?#{[pq: "topic_position:0"]}" tr td code updated_at td Date/Time Range td Matches the creation or last edit time of this post. td code = link "updated_at.gte:2 weeks ago", to: ~p"/posts?#{[pq: "updated_at.gte:2 weeks ago"]}" tr td code user_id td Literal td Matches posts with the specified user_id. Anonymous users will never match this term. td code = link "user_id:211190", to: ~p"/posts?#{[pq: "user_id:211190"]}" tr td code forum td Literal td Matches the short name for the forum this post belongs to. td code = link "forum:meta", to: ~p"/posts?#{[pq: "forum:meta"]}"