OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

MS IndexServerの検索結果について

  • すぐに回答を!
  • 質問No.105140
  • 閲覧数194
  • ありがとう数9
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 53% (210/390)

IndexServerをテスト構築してファイルサーバを検索しているんですが、検索結果にどうも納得いかないというか、わからない部分があります。例えば以下のように
今日は晴れ・・・・A
今日は雨・・・・・B
昨日は晴れ・・・・C
という文章が入った3つ(A,B,C)のファイルを検索します
1.“今日は晴れ”というキーワードで検索した場合
検索結果A,B,Cすべて。
2.“今日”というキーワードで検索した場合
検索結果A,Bの2件
3.“晴れ”というキーワードで検索した場合
検索結果A,Cの2件
4.“晴”というキーワードで検索した場合
検索結果0件
という結果になりました。

2と3の結果は納得いきます。でも1.は“今日”と“晴れ”のOR検索をしていますよね。それと、4.に関しては通常ならA,Cが引っ掛るべきじゃないでしょうか?これを説明できる方、いらっしゃいますか?どんなことでも結構なんで意見ください。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル8

ベストアンサー率 88% (15/17)

Windows 2000のIndex Serviceを使用されていて、カタログのクエリから
検索を行っていると仮定して回答いたします。

Windows 2000のIndex Serviceで標準でセットアップされるカタログの
クエリでは「フリーテキストクエリ」が行われます。
これは単純なAND検索やOR検索ではなく、クエリ中に含まれる単語に
意味が近いものを順に返すクエリです。
詳しくはヘルプに掲載されています。

・・・と、いうことになっていますが、実際はほとんどワードブレイクした
後の OR 検索になります(特に日本語では)。

いずれにせよ、Windows 2000 Index Serviceのカタログのクエリに
おいては1は正しい結果となります。

ちなみに、同じ検索(1)をWindows NT 4.0のIndex Server付属のサンプル
クエリで行うと、Aしか引っかかりませんが、これはNT4.0の方は
「フレーズクエリ」で検索を行っているからです。

これと同じことをWindows 2000で実現したい場合は自分で
クエリページを作成し「フリーテキストクエリ」ではなく
「フレーズクエリ」を行うように変更してやる必要があります。

4に関しては
「晴れ」という1つの単語としてIndex Serviceが認識しているためだと
思います。Index Serviceは所詮「単語検索」ですからデータ内の
単語と、入力された単語が異なる、と認識されたらば結果としては
引っかかりません。

こんな感じでよろしいでしょうか?
お礼コメント
holydevil

お礼率 53% (210/390)

ありがとうございます。
4に関しては仕方がないのですね。

あと「フレーズクエリ」で検索にするにはどうすればいいのですか?IDQファイルの
CiRestriction=%CiRestriction%
の部分を変えるのですか?
投稿日時 - 2001-07-17 13:18:32
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.3
レベル8

ベストアンサー率 88% (15/17)

申し訳ないですが、VBScriptよくわからないです。 その代わりといっては何ですが、当方でやっている方法をご紹介します。 最初のフォーム(.htm)をサブミットする時に、JavaScriptで CiRestictionの値を隠しフォームにコピーしておき、 その値を.htxの表示の際に使用しています。 ...続きを読む
申し訳ないですが、VBScriptよくわからないです。

その代わりといっては何ですが、当方でやっている方法をご紹介します。

最初のフォーム(.htm)をサブミットする時に、JavaScriptで
CiRestictionの値を隠しフォームにコピーしておき、
その値を.htxの表示の際に使用しています。
お礼コメント
holydevil

お礼率 53% (210/390)

どうもVBでうまくいかないので私もjavascriptを使ってみました。以下のようにしました。HTXファイルのヘッダに
<script Language="javascript">
msg="<%CiRestriction%>";
count=msg.length;
st=msg.substring(8,(count-9));
</script>
を追加し、body部分の
<%CiRestriction%>
をすべて
<script Language="javascript">document.write(st)</script>
にしました。すごく強引なやりかたであまりスマートではないですが、一応表示はうまくいきました。このやり方にご意見いただければと思います。
投稿日時 - 2001-07-17 20:53:56


  • 回答No.2
レベル8

ベストアンサー率 88% (15/17)

CiRestriction=%CiRestriction% を CiRestriction={phrase}%CiRestriction%{/phrase} にしてみてください。 もしかすると、結果表示とかも{phrase}が含まれて出てきて しまうかもしれませんが、その辺は変数をうまく回すなどして 工夫してみてください。 ...続きを読む
CiRestriction=%CiRestriction% を
CiRestriction={phrase}%CiRestriction%{/phrase}
にしてみてください。
もしかすると、結果表示とかも{phrase}が含まれて出てきて
しまうかもしれませんが、その辺は変数をうまく回すなどして
工夫してみてください。
お礼コメント
holydevil

お礼率 53% (210/390)

ありがとうございます。うまくいったんですが、おっしゃる通り{phrase}が出ちゃいます。HTXファイルでこんな記述して試みたんですが・・・
初めの8文字とあとの9文字を取り除く式で結果をstに代入している式です。(VBです)
 <%Dim count AS Double%>
 <%Dim CiRestriction AS String%>
 <%Dim st AS String%>
 <%count=Len(CiRestriction)%>
 <%st=Mid(CiRestriction,9,(count-17))%>

 <%CiMatchedRecordCount%> 個がクエリー "<%st%>" を満たしています。

これって間違ってます?結果は
"" を満たしています。
ってかんじで何も入っていない状態になります。
投稿日時 - 2001-07-17 17:11:22
  • 回答No.4
レベル8

ベストアンサー率 88% (15/17)

JavaScriptを使った表示、いいアイデアだと思います。 私も今度利用させてもらおうかと思います。 VBSやJavaSciptに詳しい方だともっとスマートな方法が 思い浮かぶのかもしれませんが、私はそんなに知見がないので holydevilさん以上のことは思いつきません。。。 すいません。 ...続きを読む
JavaScriptを使った表示、いいアイデアだと思います。
私も今度利用させてもらおうかと思います。

VBSやJavaSciptに詳しい方だともっとスマートな方法が
思い浮かぶのかもしれませんが、私はそんなに知見がないので
holydevilさん以上のことは思いつきません。。。
すいません。
お礼コメント
holydevil

お礼率 53% (210/390)

是非利用してみてください。
ちょっと話が変わりますが
IndexServerってファイル名はインデキシングされないのでしょうか?おそらく標準のままだとされていませんよね。ファイル名で検索はやっぱり無理ですか?
投稿日時 - 2001-07-18 15:07:44
  • 回答No.5
レベル8

ベストアンサー率 88% (15/17)

ファイル名もインデキシングされています。 @Filename = test.txt #Filename *.txt などで検索できます。 その他、ファイルの作成日検索などなどヘルプに詳しく出ていると思います。 (少なくともNT4のIndex Serviceにはヘルプがついています) ただし、<Phrase></Phrase>内では使えませんので、今回の環境で 実現 ...続きを読む
ファイル名もインデキシングされています。
@Filename = test.txt
#Filename *.txt
などで検索できます。
その他、ファイルの作成日検索などなどヘルプに詳しく出ていると思います。
(少なくともNT4のIndex Serviceにはヘルプがついています)

ただし、<Phrase></Phrase>内では使えませんので、今回の環境で
実現するためには別途フォームを用意してあげてください。
お礼コメント
holydevil

お礼率 53% (210/390)

ありがとうございました。W2KのIndex Serviceヘルプには以下の書き方が載ってました。

ファイル名で検索
CiRestriction={prop name=filename}%phrase%{/prop}

にするとファイル名検索できました。
ただ、QNo.101635で質問させていただいていた内容で一部問題が発生しました。VPATHをPATHに変更した場合、パスの情報はc:\aaa\bbb\ccc.docといった情報を取ってきます。
つまり、ローカルマシンでないと動かないリンクされないということです。仕方がないのでVPATHに戻して、検索対象をサイトの一部にしたんですが、こらでも問題発生!!。フォルダ名にスペースなどが入っているとURLエンコードされてしまいリンクされない。
shibarouはどうされてます?
投稿日時 - 2001-07-18 20:09:24
  • 回答No.6
レベル8

ベストアンサー率 88% (15/17)

まず、URLエンコードですが、 <%EscapeURL vpath%> になってないですか? vpathにしろpathにしろエンコードしたくなければEscapeURLを外してください 次に、リモートファイルの検索ですが、 PATHで問題なくアクセスできるはずです。 ディレクトリの追加でパスを\\Server\Shareで指定し、 適切なアカウントを入力してしばらく待てば出来上が ...続きを読む
まず、URLエンコードですが、
<%EscapeURL vpath%> になってないですか?
vpathにしろpathにしろエンコードしたくなければEscapeURLを外してください

次に、リモートファイルの検索ですが、
PATHで問題なくアクセスできるはずです。
ディレクトリの追加でパスを\\Server\Shareで指定し、
適切なアカウントを入力してしばらく待てば出来上がりです。
PATHの値はちゃんと\\Server\Share\Filenameで取ってきてくれます。
間違った(アクセス権のない)アカウントを入力した場合当然
検索対象とはなりませんが、それはイベントビューアーをみると
CiDaemonは....にログオンできませんでした。と
ログが残るのでその場合は適切なアカウントに変更してください。
お礼コメント
holydevil

お礼率 53% (210/390)

URLエンコードのほうはうまくいきました。
ありがとうございます。

でも<%path%>はうまくいきません。
<a href="\\servername\share\<%filename%>"><%filename%></a>
とした場合はうまくいきますが、shareフォルダの中にサブディレクトリが存在した場合もちろんリンクしません。
<%path%>をつかったら、ドライブ名からのパスを取ってきてしまいますよね?
投稿日時 - 2001-07-19 13:43:16
  • 回答No.7
レベル8

ベストアンサー率 88% (15/17)

私の理解が違っていたようですね。 ローカル(Index Serviceが走っているマシン上)の文書をリモートから アクセスする際にPATHだとまずい、ということですよね? リモート(Index Serviceではないマシン)の文書をアクセスする という意味かと思っていました。 で、それならば、ローカルのフォルダを指定する時にUNC名で指定 してあげれば解決します。 ディレクトリを ...続きを読む
私の理解が違っていたようですね。

ローカル(Index Serviceが走っているマシン上)の文書をリモートから
アクセスする際にPATHだとまずい、ということですよね?

リモート(Index Serviceではないマシン)の文書をアクセスする
という意味かと思っていました。

で、それならば、ローカルのフォルダを指定する時にUNC名で指定
してあげれば解決します。
ディレクトリを追加し、パスを入力する際に
\\自分のサーバー\共有
で設定してあげればリモートからもPATHアクセスできます。
リモートからみるということであれば、どのみち共有してますでしょうし。

#大分オリジナルの質問とかけ離れてしまいましたが、
#後から他の人が検索する時のことなどを考えると
#都度別のQAにしておいた方が良いように思います・・・。
お礼コメント
holydevil

お礼率 53% (210/390)

そうですね。もう少しお聞きしたいので別の質問でさせていただきます。
ご丁寧に、大変ありがとうございました。
投稿日時 - 2001-07-19 16:28:03
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
あなたが体験したトラブルや解決方法を共有しませんか?
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ