在结果中禁用 Lucene 类似术语

发布于 2025-01-06 01:48:45 字数 3817 浏览 3 评论 0原文

我正在使用 QueryParser 在 Sitecore 中进行 Lucene 搜索:

        var index = Sitecore.Context.Database.Indexes["intranet"];

        IndexSearcher searcher = index.GetSearcher(Sitecore.Context.Database);            

        Analyzer analyzer = new StandardAnalyzer();


        var qp = new QueryParser(Sitecore.Data.Indexing.Index.ContentFieldName, 
        analyzer);
        qp.SetAllowLeadingWildcard(true);
        qp.SetDefaultOperator(QueryParser.Operator.AND);            

        Query query = qp.Parse(AddQueryOptions(_searchString));            

        Hits hits = searcher.Search(query);                

        return hits;

但是当我搜索“Lead”时,它会返回带有“Lede”的术语。我可以在 Lucene 中禁用相似术语搜索吗?

这是由 QueryParser 解析的字符串:

+_content:(lead*) _scLang:(da) NOT template:(B07B9306-227B-4DAE-884C-1FD6CF0C1282) NOT template:(89010281-856E-4464-9D52- EAD45039CACD) 不模板:(EE1DC6A2-74F9-44BE-8C41-859688165A51) 不模板:(7B721B9A-BC29-4144-A475-75AFA75F8673) 不模板:(6178A424-8B72-4446-B8D7-B919D4D30858) 不模板:(239F9CF4-E5A0-44E0-B342-0F32CD4C6D8B) 不 模板:(7B99D81B-64F3-4F12-969D-1B04E4EB2F9C) 不 模板:(80B63A22-F5FF-451F-9B63-FEA7E1D156ED) 不模板:(B4A2AD96-AD32-479D-B0A5-11C020A121A5) NOT 模板:(ADD5F473-C3C5-4671-8CDD-8C039F81EF63) NOT 模板:(2B225B41-7F2B-4E71-8F46-CD8FDA221975) NOT模板:(DF9B3CE7-D33B-48DC-B26F-ACAF9A2C52C0) 不 模板:(32F62D22-FCED-47FF-A582-E63551971B54) 不 模板:(6BFBE266-F09E-4E33-BF55-094426AFCF47) 不模板:(E96EE51E-9DC8-4ACC-8206-538B72BF4EE4) 不 模板:(ADD5F473-C3C5-4671-8CDD-8C039F81EF63) 不 模板:(2B231428-1423-43B4-8D8F-DC0DFCEE8E21) 不模板:(93602B62-FEB7-4FDA-B975-8CDF1CA01010) 不 模板:(71B30489-A719-4EC0-9103-EDCD8CF7C9D9) 不 模板:(71B30489-A719-4EC0-9103-EDCD8CF7C9D9) 不 模板:(E96EE51E-9DC8-4ACC-8206-538B72BF4EE4) 不 模板:(3B8B970C-827A-47DF-9B7D-C0C8B2F70CD3) 不模板:(F837225B-385D-44D0-A96D-07DF92912370) 不 模板:(DD1BB9E6-46F8-43E1-816C-2D3552F12944) 不 模板:(C3B737DC-AB69-43E5-AA41-4E48E25607BB) 不模板:(5E7CFA06-8CC8-4EA1-B280-A81489363935) 不 模板:(71B30489-A719-4EC0-9103-EDCD8CF7C9D9) 不 模板:(A87A00B1-E6DB-45AB-8B54-636FEC3B5523) 不模板:(BD951C72-BEE4-46CE-8C5B-90DBF4248D67) 不 模板:(48D82A9A-C8C8-4378-925F-414FF90485A7) 不 模板:(155AD61E-D577-4895-B6D9-3B43F22EF5A6) 不模板:(3C20E6F2-BAFD-4F79-81FE-DC002572C8C7)不是模板:(3C6C9586-4997-49C4-BC86-06EA67467369)不是模板:(85590530-1D1B-483D-B9C3-C28C5973EF8A)

这是由 QueryParser 查询字符串生成的:

+_content:lead* +_scLang:da -template:b07b9306-227b-4dae-884c-1fd6cf0c1282 -template:89010281-856e-4464-9d52-ead45039cacd -模板:ee1dc6a2-74f9-44be-8c41-859688165a51 -模板:7b721b9a-bc29-4144-a475-75afa75f8673 -模板:6178a424-8b72-4446-b8d7-b919d4d30858 -模板:239f9cf4-e5a0-44e0-b342-0f32cd4c6d8b -模板:7b99d81b-64f3-4f12-969d-1b04e4eb2f9c -模板:80b63a22-f5ff-451f-9b63-fea7e1d156ed -模板:b4a2ad96-ad32-479d-b0a5-11c020a121a5 -模板:add5f473-c3c5-4671-8cdd-8c039f81ef63 -模板:2b225b41-7f2b-4e71-8f46-cd8fda221975 -模板:df9b3ce7-d33b-48dc-b26f-acaf9a2c52c0 -模板:32f62d22-fced-47ff-a582-e63551971b54 -模板:6bfbe266-f09e-4e33-bf55-094426afcf47 -模板:e96ee51e-9dc8-4acc-8206-538b72bf4ee4 -模板:add5f473-c3c5-4671-8cdd-8c039f81ef63 -模板:2b231428-1423-43b4-8d8f-dc0dfcee8e21 -模板:93602b62-feb7-4fda-b975-8cdf1ca01010 -模板:71b30489-a719-4ec0-9103-edcd8cf7c9d9 -模板:71b30489-a719-4ec0-9103-edcd8cf7c9d9 -模板:e96ee51e-9dc8-4acc-8206-538b72bf4ee4 -模板 :3b8b970c-827a-47df-9b7d-c0c8b2f70cd3 -模板:f837225b-385d-44d0-a96d-07df92912370 -模板:dd1bb9e6-46f8-43e1-816c-2d3552f12944 -模板:c3b737dc-ab69-43e5-aa41-4e48e25607bb -模板:5e7cfa06-8cc8-4ea1-b280-a81489363935 -模板:71b30489-a719-4ec0-9103-edcd8cf7c9d9 -模板:a87a00b1-e6db-45ab-8b54-636fec3b5523 -模板:bd951c72-bee4-46ce-8c5b-90dbf4248d67 -模板:48d82a9a-c8c8-4378-925f-414ff90485a7 -模板:155ad61e-d577-4895-b6d9-3b43f22ef5a6 -模板:3c20e6f2-bafd-4f79-81fe-dc002572c8c7 -模板:3c6c9586-4997-49c4-bc86-06ea67467369 -模板:85590530-1d1b-483d-b9c3-c28c5973ef8a

谢谢!

I'm doing a Lucene search in Sitecore using QueryParser:

        var index = Sitecore.Context.Database.Indexes["intranet"];

        IndexSearcher searcher = index.GetSearcher(Sitecore.Context.Database);            

        Analyzer analyzer = new StandardAnalyzer();


        var qp = new QueryParser(Sitecore.Data.Indexing.Index.ContentFieldName, 
        analyzer);
        qp.SetAllowLeadingWildcard(true);
        qp.SetDefaultOperator(QueryParser.Operator.AND);            

        Query query = qp.Parse(AddQueryOptions(_searchString));            

        Hits hits = searcher.Search(query);                

        return hits;

But when i'm doing search for example for "Lead" it returns terms with "Lede". Can I disable similar term search in Lucene?

This is string that is parsed by QueryParser:

+_content:(lead*) _scLang:(da) NOT template:(B07B9306-227B-4DAE-884C-1FD6CF0C1282) NOT template:(89010281-856E-4464-9D52-EAD45039CACD) NOT template:(EE1DC6A2-74F9-44BE-8C41-859688165A51) NOT template:(7B721B9A-BC29-4144-A475-75AFA75F8673) NOT template:(6178A424-8B72-4446-B8D7-B919D4D30858) NOT template:(239F9CF4-E5A0-44E0-B342-0F32CD4C6D8B) NOT template:(7B99D81B-64F3-4F12-969D-1B04E4EB2F9C) NOT template:(80B63A22-F5FF-451F-9B63-FEA7E1D156ED) NOT template:(B4A2AD96-AD32-479D-B0A5-11C020A121A5) NOT template:(ADD5F473-C3C5-4671-8CDD-8C039F81EF63) NOT template:(2B225B41-7F2B-4E71-8F46-CD8FDA221975) NOT template:(DF9B3CE7-D33B-48DC-B26F-ACAF9A2C52C0) NOT template:(32F62D22-FCED-47FF-A582-E63551971B54) NOT template:(6BFBE266-F09E-4E33-BF55-094426AFCF47) NOT template:(E96EE51E-9DC8-4ACC-8206-538B72BF4EE4) NOT template:(ADD5F473-C3C5-4671-8CDD-8C039F81EF63) NOT template:(2B231428-1423-43B4-8D8F-DC0DFCEE8E21) NOT template:(93602B62-FEB7-4FDA-B975-8CDF1CA01010) NOT template:(71B30489-A719-4EC0-9103-EDCD8CF7C9D9) NOT
template:(71B30489-A719-4EC0-9103-EDCD8CF7C9D9) NOT template:(E96EE51E-9DC8-4ACC-8206-538B72BF4EE4) NOT template:(3B8B970C-827A-47DF-9B7D-C0C8B2F70CD3) NOT template:(F837225B-385D-44D0-A96D-07DF92912370) NOT template:(DD1BB9E6-46F8-43E1-816C-2D3552F12944) NOT template:(C3B737DC-AB69-43E5-AA41-4E48E25607BB) NOT template:(5E7CFA06-8CC8-4EA1-B280-A81489363935) NOT template:(71B30489-A719-4EC0-9103-EDCD8CF7C9D9) NOT template:(A87A00B1-E6DB-45AB-8B54-636FEC3B5523) NOT template:(BD951C72-BEE4-46CE-8C5B-90DBF4248D67) NOT template:(48D82A9A-C8C8-4378-925F-414FF90485A7) NOT template:(155AD61E-D577-4895-B6D9-3B43F22EF5A6) NOT template:(3C20E6F2-BAFD-4F79-81FE-DC002572C8C7) NOT template:(3C6C9586-4997-49C4-BC86-06EA67467369) NOT template:(85590530-1D1B-483D-B9C3-C28C5973EF8A)

And this is generated by QueryParser query string:

+_content:lead* +_scLang:da -template:b07b9306-227b-4dae-884c-1fd6cf0c1282 -template:89010281-856e-4464-9d52-ead45039cacd -template:ee1dc6a2-74f9-44be-8c41-859688165a51 -template:7b721b9a-bc29-4144-a475-75afa75f8673 -template:6178a424-8b72-4446-b8d7-b919d4d30858 -template:239f9cf4-e5a0-44e0-b342-0f32cd4c6d8b -template:7b99d81b-64f3-4f12-969d-1b04e4eb2f9c -template:80b63a22-f5ff-451f-9b63-fea7e1d156ed -template:b4a2ad96-ad32-479d-b0a5-11c020a121a5 -template:add5f473-c3c5-4671-8cdd-8c039f81ef63 -template:2b225b41-7f2b-4e71-8f46-cd8fda221975 -template:df9b3ce7-d33b-48dc-b26f-acaf9a2c52c0 -template:32f62d22-fced-47ff-a582-e63551971b54 -template:6bfbe266-f09e-4e33-bf55-094426afcf47 -template:e96ee51e-9dc8-4acc-8206-538b72bf4ee4 -template:add5f473-c3c5-4671-8cdd-8c039f81ef63 -template:2b231428-1423-43b4-8d8f-dc0dfcee8e21 -template:93602b62-feb7-4fda-b975-8cdf1ca01010 -template:71b30489-a719-4ec0-9103-edcd8cf7c9d9 -template:71b30489-a719-4ec0-9103-edcd8cf7c9d9 -template:e96ee51e-9dc8-4acc-8206-538b72bf4ee4 -template
:3b8b970c-827a-47df-9b7d-c0c8b2f70cd3 -template:f837225b-385d-44d0-a96d-07df92912370 -template:dd1bb9e6-46f8-43e1-816c-2d3552f12944 -template:c3b737dc-ab69-43e5-aa41-4e48e25607bb -template:5e7cfa06-8cc8-4ea1-b280-a81489363935 -template:71b30489-a719-4ec0-9103-edcd8cf7c9d9 -template:a87a00b1-e6db-45ab-8b54-636fec3b5523 -template:bd951c72-bee4-46ce-8c5b-90dbf4248d67 -template:48d82a9a-c8c8-4378-925f-414ff90485a7 -template:155ad61e-d577-4895-b6d9-3b43f22ef5a6 -template:3c20e6f2-bafd-4f79-81fe-dc002572c8c7 -template:3c6c9586-4997-49c4-bc86-06ea67467369 -template:85590530-1d1b-483d-b9c3-c28c5973ef8a

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌辣 2025-01-13 01:48:45

尝试使用术语查询,

Term term = new Term ( "field" , "searchstring" );
Query q = new TermQuery (term);

您的字段可能是“content”或“_content”。
使用 IndexViewer 查看您的字段

Try using Term Query

Term term = new Term ( "field" , "searchstring" );
Query q = new TermQuery (term);

probably your field is "content" or "_content".
Use IndexViewer to view your fields

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文