- - PR -
oracleでinで曖昧検索のような機能がありますか?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-14 20:49
OracleのVerが不明ですが、正規表現で表せるなら10gから正規表現検索が可能です。
contains関数はText検索専用のはずですが。 | ||||
|
投稿日時: 2008-04-15 10:22
ひでさま返信ありがとうございます。
containsという条件初めて知りました。 テキスト索引を作成し曖昧での検索は出来ました。 前方一致、後方一致の場合もあるので対応出来るかこれから調べて みようと思います。 七味唐辛子さま返信ありがとうございます。 やはり遅くなりますよね・・・。 web画面からの検索条件で複数指定できそれぞれに曖昧検索 出来る条件があるので対応しないとならないのですが・・・。 上記のcontainsとコスト比較を行ってみようと思います。 | ||||
|
投稿日時: 2008-04-15 10:28
るぱんです。
[追加] Select句の抽出項目の中で、 [/追加] 文字列結合したフィールドを作成し、 そこをORでつないだ条件で検索をかけていく・・・では不可能? 速度は落ちるとは思いますが・・・。 [ メッセージ編集済み 編集者: るぱん 編集日時 2008-04-15 13:06 ] | ||||
|
投稿日時: 2008-04-15 10:43
deannaさま返信ありがとうございます。
Oracleのバージョンは本番では10gの予定ですが 今は9iでテストしています。 画面で選択された文字を検索条件に使用するので 正規表現での検索はちょっと無理だと思います。 | ||||
|
投稿日時: 2008-04-15 14:44
るぱんさま返信ありがとうございます。
その方法だとちょっと実装できないっぽいです。 containsについて更に質問なのですが 前方一致、後方一致には使用できないでしょうか? contains(name, '(名前1 or %名前2)', 1) > 0 のような条件でやってみたいのですが おかしくなってしまいます。(スペースがあるとおかしくなる?) | ||||
|
投稿日時: 2008-04-15 17:43
containsを使って前方一致、後方一致で検索しているのは見た事がないです。
もし出来るなら私も知りたいです。 | ||||
|
投稿日時: 2008-04-15 21:24
根本的に理解と記述が間違ってます。 containsの説明をよく読んでください。 contains(name, '名前1', 1) > 0 or contains(name, '名前2', 1) > 0 こんな感じですが、前方一致とか後方一致ではなく、 テキスト中に指定した文字列があるかどうかです。 | ||||
|
投稿日時: 2008-04-15 21:47
念のためですが、containsは 全文検索の関数
使うときは運用のことも考えてください。 簡単な解説 ftp://ftp.ashisuto.co.jp/pub/standard/vol88/oracletext_firststep.pdf |