日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

fetch_summary子句

子句說明

?

通過在查詢語句中增加fetch_summary子句,用戶可以只進行第二階段查詢,即獲取summary。目前引擎共有3種獲取summary的方式:通過docid、通過pk hash值、通過pk原始值獲取summary。

子句語法

通過docid取summary

  config=fetch_summary_type:docid&&fetch_summary=gid[, gid]

用戶需要在config子句中表明fetch_summary_type是docid,并在fetch_summary子句中填上想要獲取summary的gid。 用戶一般不需要關心gid的具體涵義,只需要從第一階段查詢結果中取出gid即可。

示例:

config=format:xml,fetch_summary_type:docid,cluster:daogou&&query=test&&fetch_summary=daogou|6|0|0|0|00000000000000004cd645cfd1c63041|184140777,daogou|6|0|0|1|00000000000000005b3ceae33e5ab800|184140777 

返回結果示例:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<TotalTime>0.003</TotalTime>
<hits numhits="2" totalhits="0" coveredPercent="0.00">
<hit cluster_name="daogou" hash_id="0" docid="0" gid="daogou|6|0|0|0|00000000000000004cd645cfd1c63041|184140777">
<fields>
<id>1</id>
</fields>
<property>
</property>
<sortExprValues></sortExprValues>
</hit>
<hit cluster_name="daogou" hash_id="0" docid="1" gid="daogou|6|0|0|1|00000000000000005b3ceae33e5ab800|184140777">
<fields>
<id>2</id>
</fields>
<property>
</property>
<sortExprValues></sortExprValues>
</hit>
</hits>
<AggregateResults>
</AggregateResults>
<Error>
<ErrorCode>0</ErrorCode>
<ErrorDescription></ErrorDescription>
</Error>
</Root>

注:獨立summary查詢返回結果中,totalhits展示數為0,coveredPercent展示數為0。 hits中hit的順序跟查詢串中fetch_summary clause中gid的順序保持一致。如果取不到summary(比如hashid或者docId不存在), 則結果中對應hit的fields域值為空 

通過pk的hash值取summary

?

通過pk的hash值取summary的方法與通過docid取基本一樣,也是通過gid的形式來表示想要取summary的文檔,不同之處在于:

  • 需要在config子句設置fetch_summary_type為pk

  • 雖然都是用gid來表示文檔,但是pk與docid還是存在一些區別。一般我們認為一個pk可以唯一的表示一個文檔,但docid不行。 因此我們在使用docid方式取summary時,還需要借助全量版本和增量版本號來定位文檔,但在使用pk來定位文檔時,就可以忽略版本信息。 所以在使用pk獲取summary時,gid中的全量版本和增量版本以及docid這幾個字段都是不起作用的。

  • 如果想使用pk的hash值來取summary,必須在這個cluster的schema中配置primary key索引,并設置"has_primary_key_attribute" : true

示例:

config=fetch_summary_type:pk&&fetch_summary=daogou|6|100|100|100|00000000000000004cd645cfd1c63041|184140777,daogou|6|200|200|200|00000000000000005b3ceae33e5ab800|184140777

通過pk的原文取summary

通過pk的原文取summary的方式與上述兩種方式都不同,因為它不采用gid來定位文檔,而是直接采用文檔的pk的原文來定位。 通過這種方式取summary,用戶需要:

  • 在config子句設置fetch_summary_type為rawpk

  • 目標集群的schema中配置了primary key索引,并且集群配置的hash field必須和primary key是同一個字段語法

示例:

config=fetch_summary_type:rawpk&&fetch_summary=cluster1:pk1,pk2;cluster2:pk3,pk4
返回結果:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<TotalTime>0.003</TotalTime>
<hits numhits="2" totalhits="0" coveredPercent="0.00">
<hit cluster_name="daogou" hash_id="17871" docid="0" gid="daogou|0|0|17871|0|4cd645cfd1c63041391f27d3272cfeeb|4294967295">
<fields>
<id>1</id>
</fields>
<property>
</property>
<sortExprValues></sortExprValues>
<raw_pk>111</raw_pk>
</hit>
<hit cluster_name="daogou" hash_id="60131" docid="0" gid="daogou|0|0|60131|0|5b3ceae33e5ab800352f040b4d9c05e9|4294967295">
<fields>
<id>2</id>
</fields>
<property>
</property>
<sortExprValues></sortExprValues>
<raw_pk>112</raw_pk>
</hit>
</hits>
<AggregateResults>
</AggregateResults>
<Error>
<ErrorCode>0</ErrorCode>
<ErrorDescription></ErrorDescription>
</Error>
</Root>

注:cluster表示要查詢的cluster名稱。查詢結果中,多了rawpk這個字段。由于pk原文可能出現任意字符,有可能與我們查詢串中的保留字符沖突,因此需要用戶對所有 引擎查詢串的保留字符進行轉義,在字符前面加上\(反斜杠)。具體需要轉義的字符有:逗號,冒號,分號,&(與號),等于號,斜杠本身。 例如你的pk原文是abc,d:e\,則傳給引擎的pk原文應轉義成abc\,d\:e\\

注意事項

  • fetch_summary子句是可選子句

  • 獲取summary時候可能會出現summary不存在的問題,可能的原因是集群不穩定導致取summary超時,或者是由于實時數據更新,對應的文檔在瞬時處于刪除狀態(更新數據時先刪除在添加)。

  • 不建議使用docid的方式獲取summary,因為docid是一個變化的值,當切增量或者實時數據更新時docid可能發生變化。