2

私のウェブサイトには、elasticsearch で実装された検索機能があります。ここで、デザインについて少し質問があります。

クエリ文字列でパラメーターを取るsearchActionwith ルートがあります。/searchのように/search?terms=...

結果リストをフィルター可能にしたいのですが、これを実現するための適切な設計について疑問があります。

フィルタリングされた結果のリストを作成するための最良の解決策は何ですか?

フィルター パラメーターを渡す場合、現在の URL でフォーム アクションを指定し、リンクのように現在のクエリ文字列を追加する必要がありますよね? 例:

<form action="{{ current_pat }} ~ {{ query_string }}" method="post">
    <input type="checkbox" name="filter_one">....

この場合、URL は次のようになります:/search?terms=...そして、$post私はフィルターを持っています。これは正しい解決策ですか、それともリンクのリストの方が優れていますか? 例:

<ul>
    <li><a href="{{current_path}} ~ {{ query_string }} ~ {{ this_filter }}">... 
    <li><a href="{{current_path}} ~ {{ query_string }} ~ {{ this_another_filter }}">
...

この場合、URL は次のようになります。/search?terms=...&this_filter=...

get パラメータと post フィルタを使用したフォームの場合、検索アクションで両方のタイプのパラメータを取得する必要があります。これでいいですか?

代わりに、リンクにはリクエストにすべてのパラメーターが$get含まれるようになりますが、テンプレートでクエリ文字列を使用して URL を作成するのは好きではありません。

最善の方法は何ですか?

4

3 に答える 3

0

ユーザーがURLをブックマークしたり、メールで送信したりできるように、すべてのパラメーターをクエリ文字列に含めることを好みます。

于 2013-02-15T15:32:19.530 に答える