関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
<< Java 1.6.0_10でも直っていないという報告 | main | Tokenがdeprecatedに!(2.9) >>
boostをゼロにして検索すると・・・
次のようなラーメン店のデータがあり、フィールドshopに登録されるとする:



static final String[] SHOPS = {
"ラーメン 1", "ラーメン 2", "ラーメン 3", "ラーメン 4", "ラーメン 5",
"ラーメン 6", "ラーメン 7", "ラーメン 8", "ラーメン 9", "ラーメン 10",
"ラーメン 11", "ラーメン 12", "ラーメン 13", "ラーメン 14", "ラーメン 15"
};



そして同じ文書の別フィールドwardに次のようにラーメン店の場所が登録されるとする:



static final String[] WARDS = {
"江東区", "江東区", "江東区", "新宿区", "文京区",
"江東区", "江東区", "江東区", "新宿区", "文京区",
"江東区", "江東区", "江東区", "新宿区", "文京区"
};



ここで次のように「江東区または新宿区のラーメン店」を検索するQueryを作成して検索する:



QueryParser parser = new QueryParser( "shop", analyzer );
Query query = parser.parse( "+ラーメン +(ward:江東区 OR ward:新宿区)" );
TopDocs docs = searcher.search( query, 100 );



取得したdocsを表示(スコアとDocument内容を整形して)すると、次のようになる:



1.1294092 : ラーメン 4@新宿区
1.1294092 : ラーメン 9@新宿区
1.1294092 : ラーメン 14@新宿区
0.53457046 : ラーメン 1@江東区
0.53457046 : ラーメン 2@江東区
0.53457046 : ラーメン 3@江東区
0.53457046 : ラーメン 6@江東区
0.53457046 : ラーメン 7@江東区
0.53457046 : ラーメン 8@江東区
0.53457046 : ラーメン 11@江東区
0.53457046 : ラーメン 12@江東区
0.53457046 : ラーメン 13@江東区



上記のように「江東区」と「新宿区」ではDocument数が異なるために地域属性のIDFが違ってきてスコアが新宿が高くなってしまう。

地域のような属性フィールドではスコアを計算したくないとき、通常はFilterを使うことが考えられるが、Filterは場合によっては使いたくないときもあるだろう。

そんなときは、上記の検索式の地域属性の項のBOOSTを次のようにゼロに設定するとよい:



Query query = parser.parse( "+ラーメン +(ward:江東区 OR ward:新宿区)^0" );



これで実行すると、次のように地域間でスコアの違いがなくなる:



0.5846634 : ラーメン 1@江東区
0.5846634 : ラーメン 2@江東区
0.5846634 : ラーメン 3@江東区
0.5846634 : ラーメン 4@新宿区
0.5846634 : ラーメン 6@江東区
0.5846634 : ラーメン 7@江東区
0.5846634 : ラーメン 8@江東区
0.5846634 : ラーメン 9@新宿区
0.5846634 : ラーメン 11@江東区
0.5846634 : ラーメン 12@江東区
0.5846634 : ラーメン 13@江東区
0.5846634 : ラーメン 14@新宿区


| 関口宏司 | Luceneスコアリング | 00:18 | comments(1) | trackbacks(0) |
http://www.adidasnmdrunnerr1.us.com/ adidas yeezy boost 350 v2
http://www.katespadepurses.us.com/ kate spade
http://www.pandorajewelryrings.us.com/ pandora bracelet
http://www.kyrie-4.us.com/ kevin durant shoes
http://www.nikeairmax-90.us.com/ air max tn
http://www.fitflopsshoes.us.com/ fitflop sandals
http://www.birkenstocksandalssale.us.com/ birkenstock outlet
http://www.pandorajewelryscharms.us.com/ pandora charms
http://www.pandora-jewelrysale.us.com/ pandora jewelry
http://www.kd10-shoes.us.com/ lebron james shoes
http://www.fitflops-sale.us.com/ fitflop sandals
http://www.louboutinredbottoms.us.com/ christian louboutin sneakers
http://www.airmax90shoes.us.com/ nike air max 2016
http://www.nikeairvapormaxflyknit.us.com/ air max 90
http://www.pumafentyrihannashoes.us.com/ puma running shoes
http://www.hermesbirkin-handbags.us.com/ hermes wallets
http://www.lebron15-shoes.us.com/ lebron
http://www.salomonspeedcross3.us.com/ salomon
http://www.longchampbag.us.com/ longchamp bag
http://www.curry4-shoes.us.com/ stephen curry
http://www.jordan11spacejams.us.com/ jordan 12
http://www.yeezyboost350shoes.us.com/ adidas yeezy boost
http://www.adidasyeezy-350.us.com/ adidas originals nmd
http://www.jordans11shoes.us.com/ jordan retro
http://www.adidas-ultraboost.us.com/ adidas ultra boost uncaged
ドリフトliuyuzhen
| pandora jewelry | 2018/03/24 9:57 AM |









http://lucene.jugem.jp/trackback/277
+ Solrによるブログ内検索
+ PROFILE
   1234
567891011
12131415161718
19202122232425
262728293031 
<< August 2018 >>
+ LINKS
検索エンジン製品 - 比較のポイント
商用検索エンジンを購入した企業担当者は読まないでください。ショックを受けますから・・・
>>製品比較 10のポイント
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
+ RECOMMEND
Lucene in Action
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless
FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
qrcode
+ SPONSORED LINKS