- PR -

oracleでinで曖昧検索のような機能がありますか?

投稿者投稿内容
deanna
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 118
投稿日時: 2008-04-14 20:49
OracleのVerが不明ですが、正規表現で表せるなら10gから正規表現検索が可能です。
contains関数はText検索専用のはずですが。
osiete
常連さん
会議室デビュー日: 2008/03/17
投稿数: 26
投稿日時: 2008-04-15 10:22
ひでさま返信ありがとうございます。

containsという条件初めて知りました。
テキスト索引を作成し曖昧での検索は出来ました。

前方一致、後方一致の場合もあるので対応出来るかこれから調べて
みようと思います。


七味唐辛子さま返信ありがとうございます。
やはり遅くなりますよね・・・。
web画面からの検索条件で複数指定できそれぞれに曖昧検索
出来る条件があるので対応しないとならないのですが・・・。

上記のcontainsとコスト比較を行ってみようと思います。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2008-04-15 10:28
るぱんです。

[追加]
Select句の抽出項目の中で、
[/追加]
文字列結合したフィールドを作成し、
そこをORでつないだ条件で検索をかけていく・・・では不可能?
速度は落ちるとは思いますが・・・。

[ メッセージ編集済み 編集者: るぱん 編集日時 2008-04-15 13:06 ]
osiete
常連さん
会議室デビュー日: 2008/03/17
投稿数: 26
投稿日時: 2008-04-15 10:43
deannaさま返信ありがとうございます。

Oracleのバージョンは本番では10gの予定ですが
今は9iでテストしています。

画面で選択された文字を検索条件に使用するので
正規表現での検索はちょっと無理だと思います。
osiete
常連さん
会議室デビュー日: 2008/03/17
投稿数: 26
投稿日時: 2008-04-15 14:44
るぱんさま返信ありがとうございます。

その方法だとちょっと実装できないっぽいです。


containsについて更に質問なのですが
前方一致、後方一致には使用できないでしょうか?

contains(name, '(名前1 or %名前2)', 1) > 0
のような条件でやってみたいのですが
おかしくなってしまいます。(スペースがあるとおかしくなる?)
ひで
常連さん
会議室デビュー日: 2005/04/27
投稿数: 41
お住まい・勤務地: 神戸
投稿日時: 2008-04-15 17:43
containsを使って前方一致、後方一致で検索しているのは見た事がないです。
もし出来るなら私も知りたいです。

deanna
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 118
投稿日時: 2008-04-15 21:24
引用:

osieteさんの書き込み (2008-04-15 14:44) より:

containsについて更に質問なのですが
前方一致、後方一致には使用できないでしょうか?

contains(name, '(名前1 or %名前2)', 1) > 0
のような条件でやってみたいのですが
おかしくなってしまいます。(スペースがあるとおかしくなる?)




根本的に理解と記述が間違ってます。
containsの説明をよく読んでください。

contains(name, '名前1', 1) > 0
or contains(name, '名前2', 1) > 0

こんな感じですが、前方一致とか後方一致ではなく、
テキスト中に指定した文字列があるかどうかです。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2008-04-15 21:47
念のためですが、containsは 全文検索の関数 
使うときは運用のことも考えてください。

簡単な解説
ftp://ftp.ashisuto.co.jp/pub/standard/vol88/oracletext_firststep.pdf

スキルアップ/キャリアアップ(JOB@IT)