0

現在ベータモードになっている検索エンジンベースのサイトがありますhttp://www.jobportfolio.co.uk。このサイトには、次のフィールド(job_company、job_title、job_description、job_location)を組み込んだジョブテーブルがあります。テキストフィールドであるdescriptionを除いて、すべてのフィールドはVarです。すべてのフィールドはフルテキストとして索引付けされます。

私の現在のアプローチは、タイトル、場所、会社に基づいて検索することです。これはうまくいくようですが、説明フィールドに追加して検索結果を改善したいと思います。ただし、問題は、説明フィールドを追加すると、検索にかなり時間がかかるように見えることです。12000行しかないテーブルでも、遅いようです。

次のMATCHAGAINSTクエリを使用して、結果を選択しています

MATCH(job_posts.job_title, job_company) AGAINST('".$this->mysqli_escape($job_title)."' IN BOOLEAN MODE) 

検索のパフォーマンスを向上させる方法について誰か意見がありますか?

4

1 に答える 1

0

うーん、私の最初の考えは、この問題に「外部」からアプローチすることです。複数の異なるフィールドを使用する検索フォームを使用することは許容されますか?それぞれが異なる列で検索する4つの検索文字列を使用する場合は、それ自体で負荷が軽減されると思います。例えば:

誰かが「場所」フィールドに入力すると、検索されたテキストを場所フィールドのみと照合する句がクエリに追加されます。

誰かが「説明」フィールドに入力すると、検索テキストを説明フィールドと照合する句がクエリに追加されます。それ以外の場合は、説明フィールドに対して何も一致しません。

1つの場所にテキストを入力して「すべての可能なフィールド」を検索する必要がない場合、このソリューションは、誰かが説明テキストを具体的に検索するまで、余分な速度低下を防ぎます。したがって、クエリの速度は検索者のニーズによって異なります。

于 2012-10-09T17:57:59.493 に答える