`
cloudgamer
  • 浏览: 61062 次
  • 性别: Icon_minigender_1
  • 来自: 顺德
社区版块
存档分类
最新评论

我来做百科(第二十天) A

阅读更多
不知道过了多少天了,凑个整的二十好了。下面写写这段时间的进展吧。

上一次写到完成基本的词条管理,内容管理,会员管理,评论管理,接着我做了tag系统。tag系统分了两个表,一个记录tag的内容,一个记录tag和内容的关联。这样的好处是容易处理,也更符合范式(不知有没有说错)。后台管理也不难做。难做的是tag的搜索系统,因为我想做成百度百科那样可以tag和关键字一起查找,还可以多个tag的“和”跟“或”查找。这个就要花点心思了,首先是判断查找的方式,接着是数据库怎么根据tag查找。查找方式我用“&”和“|”分开,数据库的查找就要想想了。我的设计是:第一步根据tag找到关联内容再找到关联词条,获取相关词条id,第二步筛选词条id,如果是“|”就不用筛选把重复的id移除就可以,“&”的话就是重复的id才留下。
Tag t = new Tag();
string[] arrTag;
if (tag.Contains("&"))
{
    arrTag 
= Function.GetDistinctStringArray(tag.Replace("&"" "));

    
if (arrTag != null)
    
{
        List
<int> lTag = new List<int>();

        
int i = 0;
        
foreach (string s in arrTag)
        
{
            
if (i++ == 0)
            
{
                lTag.AddRange(t.GetTagLemmaByName(s));
            }

            
else
            
{
                List
<int> lTemp = new List<int>();
                
foreach (int id in t.GetTagLemmaByName(s))
                
{
                    
if (lTag.Contains(id))
                    
{
                        lTemp.Add(id);
                    }

                }

                lTag 
= lTemp;
            }

        }

        arrLemma 
= lTag.ToArray();
    }

}

else
{
    arrTag 
= Function.GetDistinctStringArray(tag.Replace("|"" "));

    
if (arrTag != null)
    
{
        List
<int> lTag = new List<int>();
        
foreach (string s in arrTag)
        
{
            lTag.AddRange(t.GetTagLemmaByName(s));
        }

        arrLemma 
= lTag.ToArray();
    }

}

我想既然我用了“&”和“|”作为搜索判断符号,那我添加tag时就必须对这两个符号过滤,反正要过滤就把所有的符号也过滤掉吧,安心。但我看百度百科好像没有过滤符号的,于是我在百度百科添加了一个带“&”的tag看会怎样,结果搜索时果然出问题,想不到百度会没留意这个bug。

我自己也测试一下:
tag:鳙鱼|海豚 成功!
tag:地理&珠三角 成功!

再做一个tag列表页面,这样tag系统就基本完成了。
分享到:
评论

相关推荐

    实训12制作HTML5百科面.docx

    二、 制作首页 首页是一个简单的 HTML5 页面,包括一个图片链接,点击图片可以跳转到 page01.html 页面。为了制作首页,需要使用 `&lt;a&gt;` 标记嵌套 `&lt;img&gt;` 标记布局,使用 `&lt;img /&gt;` 标记插入图像,并通过 `&lt;a&gt;` ...

    电脑百科全书-----217个电脑知识和实用问题解决集锦

    (1#)代表第一层楼,以下类推 &lt;br&gt;2000XP双系统启动问题 (1#) ADSL拨号中出现的错误代码(2#) &lt;br&gt;at命令的用法(3#) &lt;br&gt;AWARD BIOS设置详解 (上)(4#) &lt;br&gt;AWARD BIOS设置详解( 下)...

    “科技艺术节”计算机百科知识竟赛.ppt

    【计算机百科知识竞赛内容概述】 本“科技艺术节”计算机百科知识竞赛涵盖了多个方面的计算机基础知识,包括硬件设备、操作系统、软件使用、网络通信、数据存储、编程语言、信息安全以及计算机历史等多个主题。以下...

    最新三年级上册数学应用题解答问题练习题(及答案)(7).doc

    20. **倍数关系**:第二十题的小猴给小松鼠一个气球后,他们的气球数量关系发生了变化,需要计算新的倍数关系。 21. **年龄问题**:第二十一题涉及年龄和倍数关系,可以设立方程来解出王老师和小明的年龄。 22. **...

    第五代移动通信(5G)简介.pptx

    第五代移动通信(5G)简介 1433325 崔含泽 第四组 第五代移动通信(5G)简介全文共13页,当前为第1页。 参考文献 J.G. Andrews ,S.Buzzi ,Wan Choi ,S.V.Hanly ,A. Lozano , A.C.K. Soong ,J.C. Zhang ,"What Will 5G ...

    Python 制作糗事百科爬虫实例

    本项目使用了Python语言,并借助了多个第三方库来完成整个爬虫流程: - **requests**:用于发送HTTP请求获取网页内容。 - **lxml**:提供了强大的HTML/XML解析功能,帮助我们快速定位和提取所需数据。 - **re**...

    物联网考试题及答案最新版.pdf

    我国居民的第二代身份证采用的是 ( B )RFID 技术。 A.低频 B.中高频 C.超高频 D.微波 6、RFID 技术实质是一个基于( C )发展出来的一种自动识别技 术,是一种可以将物品编码采用无线标签方式进行记录和供读取的小 型...

    七年级历史下册 第20课 明清的科学技术同步练习(无答案) 中华书局版.doc

    1. A. 紫禁城 2. D. 中国17世纪的工艺百科全书 3. D. 《天工开物》 4. B. 《天工开物》和《九章算术》 5. D. 被称为“中国17世纪的工艺百科全书” 6. C. 贾思勰----------《天工开物》 7. D. 紫禁城 8. D. 嘉峪关---...

    七年级历史下册 第20课 明清的科学技术同步练习(无答案) 中华书局版(通用).doc

    1. 正确答案:A.紫禁城,因为题目提到紫禁城是世界上最著名且保存完好的古代建筑群之一。 2. 正确答案:D.《天工开物》,因为它是中国17世纪的工艺百科全书。 3. 某历史小组研究明清科技,应查阅《天工开物》,...

    七年级历史下册 第三单元 第20课 明清的科学技术导学案(无答案) 中华书局版.doc

    - 在明朝时期,故宫被称为紫禁城,因此正确答案是A.紫禁城。 8. **明长城最西端** - 明长城最西端是嘉峪关,所以正确答案是C.嘉峪关遗址。 9. **考察传统工艺** - 张小泉剪刀属于手工业制品,因此查阅《天工...

    2021专升本大学语文考试题(1).pdf

    4. “人类历史上第一个真正揭示知识的真正意义的人”是培根(C),他提出了知识就是力量的观点。 8. 未提供具体内容,无法解析主旨。 14. 《虞美人》是一首抒情词(B),通常表达个人情感或感慨。 20. “易安居士...

    中国医科大学20秋《现代远程学习概论》在线作业答案.docx

    【现代远程学习概论】是关于利用信息技术进行远程教育的学科,主要探讨如何在非传统教室环境下有效地进行学习。远程学习突破了时间和空间的限制,让学习者可以在任何...管理情绪的第一步是认识自己的情绪,选项A正确。

    2018年“互联网”开放合作试题__多选.pdf

    【多选题】第(15)题:20世纪90年代,中国启动了一系列重大信息化应用工程,其中“金关”、“金卡”、“金税”是重要的代表。“金关”是为了提高海关信息化管理水平;“金卡”旨在推动银行卡产业的发展;“金税”则...

    20秋吉大《文献检索》在线作业二-0002答卷.docx

    20. 计算机网络的地理分类:A、局域网,B、广域网,C、城域网。 21. 存储与检索的关系:B、正确,检索基于存储,而存储服务于检索。 22. 逻辑算符的性质:B、正确,布尔算符确实用于表达检索单元之间的逻辑关系。 ...

    自己动手写操作系统(含源代码).part2

    我想,虽然第二版有着这样那样的变化,但有一点没有变,那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初的思路和编码过程呈现出来。很可能读者比我更聪明,有更好的解决...

    自己动手写操作系统(含源代码).part1

    我想,虽然第二版有着这样那样的变化,但有一点没有变,那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初的思路和编码过程呈现出来。很可能读者比我更聪明,有更好的解决...

    大学英语六级高频词汇大学英语六级高频词汇

    24. encyclopedia:百科全书 25. technology:工艺,技术 26. significant:有意义的;重大的,重要的 27. climate:气候;风气,社会思潮 28. treaty:条约 29. shark:鲨鱼 30. numerous:众多的,许多的,大批的 ...

    最新三年级上册数学试卷应用题解答问题题练习题(5).doc

    第二题中,丽丽家和明明家与学校在同一街道上,我们可以通过比较丽丽家和明明家到学校的距离来找出他们两家之间的距离。如果丽丽家距学校520米,明明家距学校390米,那么两家的距离可能是520-390=130米,也可能是520...

Global site tag (gtag.js) - Google Analytics