[C#] Lucene.net–透過 TermRangeQuery 進行日期搜尋

2012-10-05

 

平常在做專案尤其是處理訂單時候,日期搜尋是一定要具備的..

在 Lucene.net 下面如何進行日期搜尋..

目標資料簡述

每一筆資料大概結構為

{
"Id":"1200",
"Memo":"都是暗自忌憚,同時退開數尺,跟著各自反手,又抓了一名弟子,向前擲出。那兩名弟子又是在半空中一撞,發出",
"Birthday":"1903-04-16T00:00:00",
"Age":1200
}

編號 1~ 1200 其中 Birthday 欄位為 1900/1/2 ~ 1903/4/6



[C#] Lucene.net–透過 Filter 過濾條件

 

上一篇文章 談到 透過 TermRangeQuery 進行日期搜尋

其實透過查詢的方法不只有 Query 還有 Filter 可以用..

像是原本使用 Query 查詢 日期範圍:

C# Code :

// 其 parameters 為  欄位名稱, 下底 (小值), 上底 (大值), 是否包含最小值, 是否包含最大值
Query query1 = new TermRangeQuery("BirthDay", "19001101", "19001202", true, true);
var hits = search.Search(query1, null, search.MaxDoc()).ScoreDocs;

可以直接使用 Filter 做過濾..


TermRangeFilter 過濾時間



[C#]Lucene.net–搜尋數字範圍問題以及暫時解答

 

上一片文章提到過有關於日期搜尋  透過 TermRangeQuery 進行日期搜尋

其中 我們也可以對一般數字欄位 譬如 年紀、數量 進行搜尋…

資料 :

{"Id":"9",
"Memo":"當麻左手凌空劈出,右掌跟著迅捷之極的劈出,左手掌力先發後到,右手掌力後發先到,兩股力道交錯而前,詭異之極",
"Birthday":"1900-01-10T00:00:00",
"Age":9}


[C#]Lucene.net–增加索引,清除所有索引


如何增加索引,這問題從我寫這一系列文章以來已經被問很多次了~哈哈~
其實看過一些文件..在Lucene. 中,其實都是重做index ..

但是你確保,你的資料是新的,也就是你的定義的Id 欄位不會重複



[C#] 一個有關於自定字串找尋JSON 格式的值 by JSON.net


最近公司專案很多,需求也都很詭異..
所以需要這樣的東西,紀錄一下,有需要的人就拿去用吧…

只是寫得不好的部分,也請多多指教…


[C#]Lucene.net–合併索引

2012-10-04


這一篇來說一下一個我覺得也會常用到的合併索引..

資料概述

在  CIndex1 中有已存在資料索引 1~1200
其搜尋'當麻'關鍵字結果為
2012-10-04_163420_thumb[1]


當麻許的超技八 2014 | Donma Hsu Design.