我正在运行Typesense服务器,运行良好。但是,当我尝试在int或bool字段上使用int参数时,它会挂起。当我使用string类型的字段时,它会立即返回排序结果。
您知道为什么Typesense会挂在int或bool字段上吗?日志输出中没有任何内容。
谢谢你的帮助或暗示。
编辑:我正在使用的设置:
$productSchema = [ 'name' => 'products', 'fields' => [
['name' => 'name', 'type' => 'string', 'sort' => true],
['name' => 'seo_url', 'type' => 'string'],
['name' => 'short_description', 'type' => 'string'],
['name' => 'long_description', 'type' => 'string'],
['name' => 'product_number', 'type' => 'string'],
['name' => 'attributes', 'type' => 'string'],
['name' => 'on_stock', 'type' => 'bool', 'optional' => true, 'index' => false, 'sort' => true],
['name' => 'last_purchase', 'type' => 'int32', 'optional' => true, 'index' => false, 'sort' => true],
['name' => 'attributes_ids', 'type' => 'int32[]', 'index' => false, 'optional' => true],
['name' => 'category', 'type' => 'string'],
['name' => 'category_ids', 'type' => 'int32[]', 'index' => false, 'optional' => true],
['name' => 'image_url', 'type' => 'string', 'index' => false, 'optional' => true],
['name' => 'price_vat', 'type' => 'float', 'index' => false, 'optional' => true, 'sort' => true] ] ];和搜索查询:
curl -H "X-TYPESENSE-API-KEY: key" "http://localhost:8108/collections/products/documents/search?q=jednoro&query_by=name&sort_by=price_vat:asc"下面是索引文档的示例。
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释
* {"facet_counts":[],"found":66,"hits":[{"document":{"attributes":"Jednorožec, bavlna / elastan, Žlutá, Růžová, Zelená, Holčičí vzor","attributes_ids":[71,3,13,15,18,32],"category":"Potisk úplety","category_ids":[8],"id":"3726","image_url":"https://example.com/foto/51/8173X250X233~dxndYq.jpg","last_purchase":1573686000,"long_description":"<p>Úplet s pohádkovými jednorožci na úžasném duhovém podkladu volá po ušití šatů pro malé princezny. Pořiďte své holčičce originální kousek do šatníku, bude nadšená! A vy s ní.:-)</p>\r\n<p>Úplet je pružný ve směru osnovy i útku, vhodný na každodenní nošení.</p>\r\n<p><strong>Karmelie doporučuje na šití:</strong> Vhodný na výrobu triček, trik s dlouhým rukávem, šatiček, sukýnek. Využít jej můžete i na legíny. Dopřejte vaší mysli popustit uzdu své fantazie!</p>\r\n<p>NEZAPOMEŇTE: Úplet před šitím vysrážet.<br /><br />Ostatní: barvy nemusí plně odpovídat skutečnosti, odchylky jsou způsobeny nesprávnou kalibrací monitoru.</p>\r\n<p> </p>","name":"Úplet barevní jednorožci na duhovém podkladu","on_stock":false,"price_vat":335,"product_number":"UPS009","reserved_amount":"0.00","seo_url":"uplet-barevni-jednorozci-na-duhovem-podkladu","short_description":"Šířka: 150–155 cm Gramáž: 210 - 215 g/m² Složení: 95% bavlna, 5% elastan. Certifikát pro děti do 3 let.","warehouse_amount":"0.00"},"highlights":[{"field":"name","matched_tokens":["jednoro"],"snippet":"Úplet barevní <mark>jednoro</mark>žci na duhovém podkladu"}],"text_match":72341261125681153},{"document":{"attributes":"Jednorožec, Červená, Holčičí vzor, bavlna / elastan","attributes_ids":[71,16,32,3],"category":"Potisk úplety","category_ids":[8],"id":"3210","image_url":"https://example.com/foto/66/30769X250X233~cHZGNa.jpeg","last_purchase":1568757600,"long_description":"<p><strong>Karmelie doporučuje na šití: </strong></p>\r\n<p>Nejraději z něj švadlenky šijí trička. Dále se hodí na trika s dlouhým rukávem, tuniky. Využít ho lze i na aplikaci. Ideální do kombinace k jednobarevným úpletům v barvě podkladu či vzoru, panelům.Podle vkusu také k ostatním designovým úpletům z naší nabídky.</p>\r\n<p>NEZAPOMEŇTE:<br />Úplet před šitím vysrážet.</p>\r\n<p>Ostatní: barvy nemusí plně odpovídat skutečnosti, odchylky jsou způsobeny nesprávnou kalibrací monitoru.</p>\r\n<p> </p>","name":"Úplet potisk digitální jednorožci na bordó","on_stock":true,"price_vat":310,"product_number":"UPS001","reserved_amount":"0.00","seo_url":"uplet-potisk-digitalni-jednorozci-na-bordo","short_description":"Šířka: 150 cm. Gramáž: 210 g/m². Složení: 95% bavlna, 5% elastan. Certifikát pro děti do 3 let.","warehouse_amount":"6.30"},"highlights":[{"field":"name","matched_tokens":["jednoro"],"snippet":"Úplet potisk digitální <mark>jednoro</mark>žci na bordó"}],"text_match":72341261125681153},{"document":{"attributes":"Jednorožec, Černá, Holčičí vzor, bavlna / elastan","attributes_ids":[71,20,32,3],"category":"Potisk úplety","category_ids":[8],"id":"7981","image_url":"https://example.com/foto/20/24067X250X233~e1IF84.jpg","last_purchase":1619215200,"long_description":"<div class=\"specs-row\">Jednorožci se mezi holčičkami těší oblibě už hodně roků, proto se s nimi ponořte do kouzelného světa plného těchto bájných tvorů.:-) </div>\r\n<div class=\"specs-row\"> </div>\r\n<div class=\"specs-row\"><strong>Karmelie doporučuje na šití: </strong></div>\r\n<p>Vhodný na výrobu triček, trik s dlouhým rukávem, sukýnek, šatiček a dalšího oblečení. Využít jej můžete i na jarní čepice, tunely a šátkošály. Skvěle se bude hodit jako doplňující materiál k mikině na kapsy, nebo vnitřní část kapuce.:-)</p>\r\n<p>Rada pro začátečníka:<br />Při šití úpletů si nandejte do stroje jehlu JERSEY, která je určena pro šití pružných látek. Tyto jehly jsou určené pro úplety a mají zakulacenou špičku. Nepoškodí tak očka pleteniny a snadno vklouzne mezi ně. U použití obyčejné jehly hrozí narušení úpletu, což by vedlo s každým praním a nošením ke zvětšující se dírce.</p>\r\n<p>NEZAPOMEŇTE:<br />Úplet před praním vysrážet.</p>\r\n<p>Ostatní: barvy nemusí plně odpovídat skutečnosti, odchylky jsou způsobeny nesprávnou kalibrací monitoru.</p>","name":"Úplet potisk jednorožci mezi lístečky na černé","on_stock":true,"price_vat":315,"product_number":"UPS207","reserved_amount":"0.00","seo_url":"uplet-potisk-jednorozci-mezi-listecky-na-cerne","short_description":"Šířka: 160 cm Gramáž: 200 g/m² Složení: 95% bavlna, 5% elastan. Certifikát pro děti do 3 let.","warehouse_amount":"22.10"},"highlights":[{"field":"name","matched_tokens":["jednoro"],"snippet":"Úplet potisk <mark>jednoro</mark>žci mezi lístečky na černé"}],"text_match":72341261125681153},{"document":{"attributes":"Jednorožec, Fialová, Holčičí vzor, bavlna / elastan","attributes_ids":[71,21,32,3],"category":"Potisk úplety","category_ids":[8],"id":"7982","image_url":"https://example.com/foto/38/24068X250X233~9huTQ.jpg","last_purchase":1619215200,"long_description":"<div class=\"specs-row\">Jednorožci se mezi holčičkami těší oblibě už hodně roků, proto se s nimi ponořte do kouzelného světa plného těchto bájných tvorů.:-) </div>\r\n<div class=\"specs-row\"> </div>\r\n<div class=\"specs-row\"><strong>Karmelie doporučuje na šití: </strong></div>\r\n<p>Vhodný na výrobu triček, trik s dlouhým rukávem, sukýnek, šatiček a dalšího oblečení. Využít jej můžete i na jarní čepice, tunely a šátkošály. Skvěle se bude hodit jako doplňující materiál k mikině na kapsy, nebo vnitřní část kapuce.:-)</p>\r\n<p>Rada pro začátečníka:<br />Při šití úpletů si nandejte do stroje jehlu JERSEY, která je určena pro šití pružných látek. Tyto jehly jsou určené pro úplety a mají zakulacenou špičku. Nepoškodí tak očka pleteniny a snadno vklouzne mezi ně. U použití obyčejné jehly hrozí narušení úpletu, což by vedlo s každým praním a nošením ke zvětšující se dírce.</p>\r\n<p>NEZAPOMEŇTE:<br />Úplet před praním vysrážet.</p>\r\n<p>Ostatní: barvy nemusí plně odpovídat skutečnosti, odchylky jsou způsobeny nesprávnou kalibrací monitoru.</p>","name":"Úplet potisk jednorožci mezi lístečky na fialové","on_stock":true,"price_vat":315,"product_number":"UPS208","reserved_amount":"0.00","seo_url":"uplet-potisk-jednorozci-mezi-listecky-na-fialove","short_description":"Šířka: 160 cm Gramáž: 200 g/m² Složení: 95% bavlna, 5% elastan. Certifikát pro děti do 3 let.","warehouse_amount":"18.40"},"highlights":[{"field":"name","matched_tokens":["jednoro"],"snippet":"Úplet potisk <mark>jednoro</mark>žci mezi lístečky na fialové"}],"text_match":72341261125681153}}
*/发布于 2022-07-24 03:20:09
price_vat在模式中设置为'index' => false,因此不能用于排序--只有索引字段可以用于排序/筛选/搜索。因此,如果您将price_vat更改为'index' => true,它应该会像预期的那样工作。
旁注: Typesense中缺少一个验证,这导致它挂起,而不是在本例中报告错误。在即将到来的RC中,现在有一个有待解决的问题。
https://stackoverflow.com/questions/73088804
复制相似问题