簡體   English   中英

對於多個字段索引,Redissearch 前綴搜索始終返回最大 200

[英]Redisearch prefix search always returns max 200 for total for multiple fields index

使用 python RediSearch 客戶端連接到 RediSearch 並執行應該匹配 300 個文檔的前綴搜索,如果索引中有另一個 TagField,它只會返回 200:

from redisearch import Client, Query, TextField, TagField

client = Client('myindex')
client.create_index([TextField('username'), TagField('age')])

# add 300 documents
for i in range(300):
    client.add_document(i, username='user%s' % i, age=i)

res = client.search(Query("@username:user*"))

assert res.total == 300 # this is always 200 no matter how many documents you add.

請參閱搜索查詢語法:前綴匹配

關於前綴搜索的一些注意事項: 由於前綴可以擴展為許多術語,因此請謹慎使用它們。 沒有魔法在進行,擴展將創建所有后綴的聯合操作。

作為一種避免選擇過多term的保護措施,並且block redis,它是單線程的,前綴匹配有兩個限制:

前綴限制為 2 個或更多字母。 您可以使用模塊命令行上的 MINPREFIX 設置更改此數字。

擴展限制為 200 個或更少 您可以使用模塊命令行上的 MAXEXPANSIONS 設置更改此數字。

有關如何配置,請參閱運行時配置:MAXEXPANSIONS

暫無
暫無

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

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