2010年3月19日 星期五

[SEO]百度sitemap

約一年前提交過百度的sitemp
不過審核不過...
猜測原因是網站的類型不符合吧!

最近又開始查查看有沒有百度的sitemap資訊
發現互聯網新聞開放協議似乎不像以前可以主動提交了

後來查了較近時間內的資訊
蠻多人都說其實百度跟google都是用同樣的sitemap協定
所以不用再特別做一份

只要在robots.txt加入
Sitemap: http://domain.com/sitemap_baidu.xml
即可
(檔名必須是sitemap_baidu)

就等等看百度的index是否有明顯效果吧!

2010年3月10日 星期三

[Lucene]Query&filter

紀錄一下目前查詢所用到的Query

1.MultiFieldQueryParser
適用於查詢多個field
String[] field = {"A","B","C"};
Analyzer standardAnalyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
MultiFieldQueryParser mfqp = new MultiFieldQueryParser(Version.LUCENE_CURRENT, field, standardAnalyzer);

2.PhraseQuery
適用於查詢多個關鍵詞,但只能查同一個field
PhraseQuery pQuery  = new PhraseQuery();
pQuery.add(new Term("A", keep));
pQuery.add(new Term("A", coding));

3.WildcardQuery
可利用正則表達式的查詢方式
WildcardQuery wQuery = new WildcardQuery(new Term("A", keep+"*"));

4.BooleanQuery
組合查詢,負責串接Query
booleanQuery.add(pQuery, BooleanClause.Occur.SHOULD);
booleanQuery.add(wQuery, BooleanClause.Occur.SHOULD);
其中BooleanClause.Occur.SHOULD這個屬性不是很懂
如果是BooleanClause.Occur.MUST則是一定會出現
但沒有去跟其他的Query做個聯集

為了做出正確的查詢結果
我把原本使用BooleanClause.Occur.MUST的Query改成用filter來做
將query出來後的結果透過filter再過濾一次
Filter filter = new QueryWrapperFilter(mustQuery);//再次地過濾查詢結果

目前加入filter後還沒有感覺到效能變差
所以就暫不研究BooleanClause.Occur了!