- Installation
- Documentation
- Getting Started
- Connect
- Data Import
- Overview
- Data Sources
- CSV Files
- JSON Files
- Overview
- Creating JSON
- Loading JSON
- Writing JSON
- JSON Type
- JSON Functions
- Format Settings
- Installing and Loading
- SQL to / from JSON
- Caveats
- Multiple Files
- Parquet Files
- Partitioning
- Appender
- INSERT Statements
- Client APIs
- Overview
- ADBC
- C
- Overview
- Startup
- Configuration
- Query
- Data Chunks
- Vectors
- Values
- Types
- Prepared Statements
- Appender
- Table Functions
- Replacement Scans
- API Reference
- C++
- CLI
- Overview
- Arguments
- Dot Commands
- Output Formats
- Editing
- Safe Mode
- Autocomplete
- Syntax Highlighting
- Known Issues
- Dart
- Go
- Java (JDBC)
- Julia
- Node.js (Deprecated)
- Node.js (Neo)
- ODBC
- PHP
- Python
- Overview
- Data Ingestion
- Conversion between DuckDB and Python
- DB API
- Relational API
- Function API
- Types API
- Expression API
- Spark API
- API Reference
- Known Python Issues
- R
- Rust
- Swift
- Wasm
- SQL
- Introduction
- Statements
- Overview
- ANALYZE
- ALTER TABLE
- ALTER VIEW
- ATTACH and DETACH
- CALL
- CHECKPOINT
- COMMENT ON
- COPY
- CREATE INDEX
- CREATE MACRO
- CREATE SCHEMA
- CREATE SECRET
- CREATE SEQUENCE
- CREATE TABLE
- CREATE VIEW
- CREATE TYPE
- DELETE
- DESCRIBE
- DROP
- EXPORT and IMPORT DATABASE
- INSERT
- LOAD / INSTALL
- PIVOT
- Profiling
- SELECT
- SET / RESET
- SET VARIABLE
- SUMMARIZE
- Transaction Management
- UNPIVOT
- UPDATE
- USE
- VACUUM
- Query Syntax
- SELECT
- FROM and JOIN
- WHERE
- GROUP BY
- GROUPING SETS
- HAVING
- ORDER BY
- LIMIT and OFFSET
- SAMPLE
- Unnesting
- WITH
- WINDOW
- QUALIFY
- VALUES
- FILTER
- Set Operations
- Prepared Statements
- Data Types
- Overview
- Array
- Bitstring
- Blob
- Boolean
- Date
- Enum
- Interval
- List
- Literal Types
- Map
- NULL Values
- Numeric
- Struct
- Text
- Time
- Timestamp
- Time Zones
- Union
- Typecasting
- Expressions
- Overview
- CASE Expression
- Casting
- Collations
- Comparisons
- IN Operator
- Logical Operators
- Star Expression
- Subqueries
- TRY
- Functions
- Overview
- Aggregate Functions
- Array Functions
- Bitstring Functions
- Blob Functions
- Date Format Functions
- Date Functions
- Date Part Functions
- Enum Functions
- Interval Functions
- Lambda Functions
- List Functions
- Map Functions
- Nested Functions
- Numeric Functions
- Pattern Matching
- Regular Expressions
- Struct Functions
- Text Functions
- Time Functions
- Timestamp Functions
- Timestamp with Time Zone Functions
- Union Functions
- Utility Functions
- Window Functions
- Constraints
- Indexes
- Meta Queries
- DuckDB's SQL Dialect
- Overview
- Indexing
- Friendly SQL
- Keywords and Identifiers
- Order Preservation
- PostgreSQL Compatibility
- SQL Quirks
- Samples
- Configuration
- Extensions
- Overview
- Installing Extensions
- Advanced Installation Methods
- Distributing Extensions
- Versioning of Extensions
- Troubleshooting of Extensions
- Core Extensions
- Overview
- AutoComplete
- Avro
- AWS
- Azure
- Delta
- DuckLake
- Encodings
- Excel
- Full Text Search
- httpfs (HTTP and S3)
- Iceberg
- Overview
- Iceberg REST Catalogs
- Amazon S3 Tables
- Amazon SageMaker Lakehouse (AWS Glue)
- Troubleshooting
- ICU
- inet
- jemalloc
- MySQL
- PostgreSQL
- Spatial
- SQLite
- TPC-DS
- TPC-H
- UI
- VSS
- Guides
- Overview
- Data Viewers
- Database Integration
- File Formats
- Overview
- CSV Import
- CSV Export
- Directly Reading Files
- Excel Import
- Excel Export
- JSON Import
- JSON Export
- Parquet Import
- Parquet Export
- Querying Parquet Files
- File Access with the file: Protocol
- Network and Cloud Storage
- Overview
- HTTP Parquet Import
- S3 Parquet Import
- S3 Parquet Export
- S3 Iceberg Import
- S3 Express One
- GCS Import
- Cloudflare R2 Import
- DuckDB over HTTPS / S3
- Fastly Object Storage Import
- Meta Queries
- Describe Table
- EXPLAIN: Inspect Query Plans
- EXPLAIN ANALYZE: Profile Queries
- List Tables
- Summarize
- DuckDB Environment
- ODBC
- Performance
- Overview
- Environment
- Import
- Schema
- Indexing
- Join Operations
- File Formats
- How to Tune Workloads
- My Workload Is Slow
- Benchmarks
- Working with Huge Databases
- Python
- Installation
- Executing SQL
- Jupyter Notebooks
- marimo Notebooks
- SQL on Pandas
- Import from Pandas
- Export to Pandas
- Import from Numpy
- Export to Numpy
- SQL on Arrow
- Import from Arrow
- Export to Arrow
- Relational API on Pandas
- Multiple Python Threads
- Integration with Ibis
- Integration with Polars
- Using fsspec Filesystems
- SQL Editors
- SQL Features
- Snippets
- Creating Synthetic Data
- Dutch Railway Datasets
- Sharing Macros
- Analyzing a Git Repository
- Importing Duckbox Tables
- Copying an In-Memory Database to a File
- Troubleshooting
- Glossary of Terms
- Browsing Offline
- Operations Manual
- Overview
- DuckDB's Footprint
- Logging
- Securing DuckDB
- Non-Deterministic Behavior
- Limits
- Development
- DuckDB Repositories
- Profiling
- Building DuckDB
- Overview
- Build Configuration
- Building Extensions
- Android
- Linux
- macOS
- Raspberry Pi
- Windows
- Python
- R
- Troubleshooting
- Unofficial and Unsupported Platforms
- Benchmark Suite
- Testing
- Internals
- Sitemap
- Live Demo
ヘルプ
これは何?
全文検索システムです。指定した語句を含む文書を探すことができます。本文中の語句をもとにして検索するだけでなく、題名などの属性をもとに検索することもできます。
使い方
画面最上部にある入力欄には、検索フレーズを入力します。例えば、「コンピュータ」という文字列を含む文書を探したいなら、「コンピュータ」とそのまま入力してください。
検索語を空白で挟んで並べると、AND検索ができます。例えば、「インターネット セキュリティ」と入力すると、「インターネット」と「セキュリティ」の両方を含む文書を検索します。「&」を使って、「インターネット & セキュリティ」としても同じです。
複数の検索語を「""」で括ると、フレーズ検索ができます。例えば、「"United Nations"」と入力すると、「United」の直後に「Nations」が出現する文書を検索します。
「!」を使うとANDNOT検索ができます。例えば、「スキー ! スノボー」と入力すると、「スキー」を含むが「スノボー」を含まない文書を検索します。ANDNOT検索は、探したい語が他の語の一部に含まれてうまく検索できない場合にも便利です。「ファイル」で検索すると「プロファイル」がヒットして鬱陶しい場合には、「ファイル ! プロファイル」とするとよいでしょう。
「|」を使うとOR検索ができます。例えば、「レモン | ライム」と入力すると、「レモン」か「ライム」のどちらか(または両方)を含む文書を検索します。OR検索は、類義語や表記の揺れに対応した検索をするのに便利です。「woman | women」などとして英単語の活用を吸収したり、「龍馬 | 竜馬」などとして漢字表記の揺れを吸収したりするとよいでしょう。
「|」は空白や「&」や「!」よりも優先順位が高いことに注意してください。例えば、「F1 | F-1 | "Formula One" & 優勝 | チャンピオン」と入力した場合、「F1」か「F-1」か「Formula One」のどれかを含んで、かつ「優勝」か「チャンピオン」のどちらかを含む文書を探します。
「*」を文字列の後に置くと、その文字列で始まる単語を含む文書を探します。例えば、「inter*」と入力すると、「inter」で始まる単語を含む文書を探します。「*」を文字列の前に置くと、その文字列で終わる単語を含む文書を探します。例えば、「*sphere」と入力すると、「sphere」で終わる単語を含む文書を探します。また、「*」を文字列の前後に置くと、その文字列の正規表現に合致する単語を含む文書を探します。例えば、「*^un.*able$*」と入力すると、「un」で始まって「able」で終わる単語を含む文書を探します。なお、前方一致や後方一致や正規表現の概念は、英語など、空白で単語が区切られる言語に対してのみ意味を持ちます。
属性による絞り込み
「with XXX」のXXXは、属性による絞り込み条件を指定します。例えば、「@title STRINC 重要」と指定すると、タイトルに「重要」という文字列を含む文書だけに絞り込みます。「@title」はタイトルを示す属性名です。属性には以下のものがあります。
- @uri : 文書のURI(URL)。
- @title : 文書のタイトル。メールの場合はSubjectの値と同じ。
- @author : 文書の作者。メールの場合はFromの値と同じ。
- @cdate : 文書の作成時間。メールの場合はDateの値と同じ。
- @mdate : 文書の最終更新時間。メールの場合はDateの値と同じ。
- @size : 文書(ファイル)のサイズ。
「STRINC」は部分文字列を含むかを判定する演算子です。絞り込み用の演算子には以下のものがあります。
- STREQ : 指定した文字列と一致する。
- STRNE : 指定した文字列と一致しない。
- STRINC : 指定した文字列を含む。
- STRBW : 指定した文字列で始まる。
- STREW : 指定した文字列で終わる。
- STRAND : 指定した文字列の全てのトークンを含む。
- STROR : 指定した文字列の一つ以上のトークンを含む。
- STROREQ : 指定した文字列の一つ以上のトークンと一致する。
- STRRX : 指定した文字列の正規表現に合致する。
- NUMEQ : 数値や日付が指定したものと等しい。
- NUMNE : 数値や日付が指定したものと等しくない。
- NUMGT : 数値や日付が指定したものより大きい。
- NUMGE : 数値や日付が指定したものと同じかより大きい。
- NUMLT : 数値や日付が指定したものより小さい。
- NUMLE : 数値や日付が指定したものと同じかより小さい。
- NUMBT : 数値や日付が指定したものの間である。
演算子の前に「!」を置いて「!STREQ」などとすると、条件に当てはまらないものに絞り込みます。文字列の演算子の前に「I」を置いて「ISTREQ」などとすると、英字などの大文字と小文字の違いを無視します。演算子を省略して属性名のみを指定した場合、値は問わずに、その属性を備える文書を該当とみなします。STRANDとSTRORとSTROREQとNUMBTは空白で区切った複数の文字列を引数に取ります。「NUMBT 51 100」は、「51から100まで」という意味であり、境界値も範囲に含みます。
属性名を「,」で区切って並べると、並べた属性のいずれかという意味になります。例えば「from,to,cc STRINC mikio」は、「fromかtoかccのどれかにmikioを含む」という意味になります。「,」の前後に空白を入れてはいけません。
順序指定
「order by XXX」のXXXは、結果の表示順序を指定します。例えば、「@size NUMA」と指定すると、サイズが小さい文書から並べられます。「@size」は属性名です。属性名には絞り込み条件のものと同じものが指定できます。「NUMA」は演算子です。順序指定用の演算子には以下のものがあります。
- STRA : 文字列(辞書順)の昇順。
- STRD : 文字列(辞書順)の降順。
- NUMA : 数値または日付の昇順。
- NUMD : 数値または日付の降順。
順序指定を行わなかった場合は、スコアの降順になります。スコアは、検索語が多く含まれる文書ほど高くなります。属性名だけを指定して演算子を省略した場合は、STRAが指定されたとみなします。
その他の機能
「XX per page」のXXは、結果の各ページに表示する文書の数を指定します。検索結果が1ページに収まらない場合は、検索結果のページの下端にある「PREV」と「NEXT」を選択することで、前後のページに移動することができます。
「clip by XX」のXXは、結果に含まれる類似した文書をまとめる力の強さを指定します。検索結果に同じ様な文書ばかり表示されて何ページも移動するのが面倒な場合に使うとよいでしょう。
検索結果の「[detail]」を選択すると、各々の文書の詳細な情報が表示されます。検索結果の「[similar]」を選択すると、各々の文書に類似した文書が検索されます。検索結果の「[include]」を選択すると、そこに省略されていた文書が表示されます。
補足
Hyper Estraierは、日本語だけでなく、英語、ドイツ語、フランス語、中国語など、大抵の言語を扱うことができます。英字の大文字と小文字の違いは無視されます。「Japan」「japan」「JAPAN」「jaPaN」は全て同じです。ダイアクリティカルマーク付きのラテン文字(àéîõü)や、ギリシア文字(αβγδε)、キリル文字(абвгд)でも同様です。
欧文は単語を単位にして検索され、それ以外の言語(中国語、日本語、韓国語、アラビア語など)は文字を単位にして検索されます(N-gram方式)。
空白や「&」「!」「|」「*」を検索語そのものとして指定したい場合は、フレーズ検索を応用してください。例えば「AT&T」を検索したい場合は、「"AT&T"」とします。
検索語を入力しなくても、属性条件だけで検索することができます。その場合、全ての文書の中から、属性条件に合致するものが検索されます。
このサイトはHyper Estraierの最も原始的なアプリケーションとして構築されています。Hyper Estraierはプログラマのためのライブラリ(API)として提供されますので、柔軟なカスタマイズや強力な機能追加が可能です。ご興味のある方は、Hyper Estraierのホームページをご覧ください。