客先のサーバーが特別仕様とのことで、外部からのアクセス不可、CGI、PHP設置不可の環境です。
その環境の中で、ウェブサイト内にサイト内検索を設置したいと言われました。
この場合、Google検索、Yahoo検索を利用する以外に方法は有りますでしょうか?
HTML関連データのみをそのまま納品して、先方にアップしてもらうという形になるので、非常に難しいとは思いますが。
別のサーバーを利用するというのは不可です。
よろしくお願いします。
出来るかといえば出来なくはないが難しい・見合わない、という所?
2つ思いつきました。
1つは妥協案
検索エンジンでインデックスされた単語全てに対する結果を予め出力して静的ファイルにしておく。
http://www.namazu.org/doc/nmz.html.ja#w
http://www.namazu.org/doc/manual.html#namazu
この辺りで出来そう。
あとは検索ボックスでjavascriptかなにかで各単語毎のページにジャンプする。
これで1単語での検索は出来る。でもAND検索とかは出来ない。
例えば「検索エンジン」で検索する場合、「検索」「エンジン」の2語のAND検索になるので出来ないことになる。
なので、妥協案というか半分ごまかしかも知れません。
もちろんよく検索されるだろう2単語とかも静的ファイルにしておけば対応可能だろうけど、作るべきページ数がまさに指数関数的に増える。
アクセスログから検索ワードを拾って日々追加していくという手もあるかもしれない。でも本当に日々やらないと、たぶん使えない検索エンジンと思われて誰も使わなくなる。
あと、複数語対応にすると「検索エンジン」「検索 エンジン」「検索 エンジン」「エンジン 検索」とか同等の条件を正規化するようにしないといけないので、javascript部分が面倒になる。
等など、労多くして得るものは少ない気がします。
も一つはjavascriptとか使ってクライアントサイドでやっちゃう方法
インデックス作成は予めやっておいて、データを静的なJSONかXMLにしておく。
クライアントサイドで検索エンジン部を実装して、AJAXでインデックスを取得して(Web Storageにキャッシュとかもしつつ)対応する方法。
問題はインデックスファイルのサイズと、検索エンジンの実装。
インデックスファイルはどれくらい肥大化するものかわからないけれど、最悪ブラウザ拡張とかにすれば意外と行けるかもしれない。
問題は検索エンジンの実装ですね。とりあえず検索しても見当たらなかった。先のnamazuとか参考にするにしても、1から作るのに見合ったものになるのかどうか。
一応、出来るのは出来ると思うのですが、こちらも労多くして……という気がします。