-1

PHPを使って簡単な検索エンジンを実装しようとしています。サーバーで .php を継続的に実行し、JSON を投稿する必要がありますか、それとも何かをサーバーに投稿し、何かが投稿されたときにのみスクリプトを実行することはできますか? いずれにせよ、私もやり方がわかりません。CRONジョブについても読んでいます。それはここに当てはまりますか?

編集: ユーザーには検索ボックスが表示されます。検索ボックスにクエリを入力します。Enter キーを押します。AJAX を使用してサーバーに送信される JSON クエリ。サーバーは送信された JSON クエリを使用して、Web サイトを検索するのではなく、特定のドキュメントのインデックスを検索します。サーバーは結果を JSON 形式で返します。これらの結果は解釈され、ユーザーに表示されます。

私はすでにphpで検索設定を行っています。私はphpにかなり慣れていません。

EDIT2: Elastic Search を使用した検索設定が既にあります。Javascript/HTML サイトからサーバー上の pHp に情報を送信する際のベスト プラクティスを知りたかっただけです。わかりにくかったことをお詫び申し上げます。

4

3 に答える 3

1

検索をスケジュールし、検索が完了したときにユーザーに通知しない限り、CRON ジョブは適用されません (それは可能ですが、実際には探しているものではありません)。

AJAX は、特にオートコンプリートなどの機能を追加する場合に非常に便利です。ただし、ページのリロード、検索結果を含むページ コンテンツ全体の再レンダリング、またはそれらの結果を含む別のページへのリダイレクトを期待している場合、AJAX は必要ありません。 1。

私の意見では、GET リクエストを介して投稿する検索フィールドを備えた単一入力フォームを用意するだけで十分です。

たとえば、次のようになります。

<form action="/search_results.php" method="get">
<input type="text" name="query" />
<button type="submit">Search</button>
</form>

/search_results.php?query=some+simple+search のような URL で検索結果ページにリダイレクトします。

次に、PHP コード内で $_GET['query'] を使用してそのクエリ パラメータを取得し、これを検索エンジン (Elastic Search) に直接渡して分析することができます。

Elastic Search を試したことはありませんが、JSON データを渡す必要がある場合は、次を使用してクエリをエンコードできます。

$search = json_encode(array('query' => $_GET['query']));

検索に期待される形式を提供していないため、正確にするのは難しいですが、これで順調に進むはずです。

ご不明な点がございましたら、お気軽に以下にコメントしてください:)

于 2013-07-18T14:39:43.987 に答える
0

html:

<form method="get" action="search.php>
<input type="text" name="search" />
<input type="submit" name="submit" value="Search" />
</form>

search.php:

<?php

$whatTheyWantToSearch = $_GET['search'];

// $whatTheyWantToSearch now holds the value that was submitted in the form
于 2013-07-18T14:12:08.113 に答える
0
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="myForm"> 
    <input id="request" type="text" size="20"><br/><br/>  
    <input type="submit" value="search">  
</form>  

<div id="search_result"></div>  

<script>  
    $(document).ready(function(){  

        $('#myForm').submit(function(){  
            $.ajax({  
                type: "POST",  
                url: "search.php",  
                data: "search_request="+$("#request").val(),  
                success: function(html){  
                    $("#search_result").html(html);  
                }  
            });  
            return false;  
        });  

    });  
</script> 
于 2013-07-18T14:32:57.357 に答える