簡體   English   中英

將Lucene查詢序列化為JSON?

[英]Serializing a lucene query into JSON?

是否有將Lucene查詢序列化為JSON格式的最佳實踐? 我看到了彈性搜索查詢dsl,但是它看起來像是來自Lucene術語的。 同樣,Lucene似乎正在遠離維護序列化代碼。

我希望在JSON中使用“標准”格式。 我需要能夠保存查詢,但是當用戶在Web UI上保存查詢時,他們沒有輸入title:Matrix 我們還必須能夠搜索保存的搜索,然后編輯保存的搜索。 如果存在表示查詢的標准json格式,那就太好了。 具體來說是Lucene查詢。

我對Elasticsearch知之甚少,但我猜他們也在這樣做(也是),因為它們支持Lucene通常不支持的額外查詢功能。

如果只需要編組/解組查詢,則將其整體視為一個未轉義的字符串。 如果您想將其分解為鍵值(字段名稱/值)元素,請別忘了您可以使用conjuction / disjunction / etc。 因此,這並非微不足道。

至於您對序列化代碼的評論-認為這不適用於查詢。 Query具有抽象的toString(String field)方法,每個查詢子類都應實現該方法並提供可分析的字符串。 toString()只是調用它-並沒有改變很長一段時間,我也看不到這種變化,因為Query不提供任何其他獲取String表示形式的方式,因此更改它會破壞很多代碼。

您的標准查詢將具有樹狀結構,因此我認為將其轉換為Json應該很簡單。 只需創建一個遞歸方法即可對布爾查詢或dismax查詢進行調用。 其余查詢(我認為)是終端查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM