solr
Elasticsearch
lucene
全文検索
CloudSearch
More than 3 years have passed since last update.

ドキュメントに入っているデータ(インデックス分割)

id name rank
1 AAA C
2 BBB C
3 CCC A
4 AAAA A
5 BBBB B
6 CCCC A
7 ABC B
8 ABCD B
9 zoo B
10 soo B

ワイルドカード

/* 全て */
name:*

/* 0 個以上の任意の文字 */
name:A*A        // id=1(name=AAA), id=4(name=AAAA)

/* 1個の任意の文字 */
name:A?A        // id=1(name=AAA)

論理演算子

/* AND */
name:A*A AND rank:A       // id=4(name=AAAA, RANK=A)
name:A*A && rank:A        // id=4(name=AAAA, RANK=A)

/* OR */
name:A*A OR rank:A        // id=1, 3, 4, 6 (name=AAA, name=AAAA, rank=A)
name:A*A || rank:A        // id=1, 3, 4, 6 (name=AAA, name=AAAA, rank=A) 

/* NOT */
name:A*A AND NOT rank:A       // id=1(name=AAA, RANK=C)
name:A*A AND !rank:A          // id=1(name=AAA, RANK=C)

/* + */
name:A*A AND NOT rank:A       // id=1(name=AAA, RANK=C)
name:"mike" AND -language:"eng"


範囲検索

rank:[3 TO 6]        // rank=3以上、6以下 
rank:{3 TO 6}        // rank=3より大きい、6未満
rank:[3 TO 6}        // rank=3以上、6未満
rank:[* TO 6]        // rank=6以下
rank:[3 6]           // rank=3または6

あいまい検索

name:zoo~0.5         // id=9(name=zoo), 10(name=soo)

重みづけ(キャレット)

rank:C^4 OR rank:A         // rank=Aで一致したデータより、rank=Cがスコアが高くなる