zoukankan      html  css  js  c++  java
  • CodeSnippet.info 开源说明 和 环境搭建 (第一版)

    Github开源声明

    本网站的代码开源,开源的目的如下

    • 技术分享
    • 希望业内同行贡献代码
    • 希望能够让网站更加安全

    开源地址:
    CodeSnippet开源地址

    关于代码贡献

    任何人都可以贡献代码,一般在 1-3个工作日内会确认合并
    代码请进行测试后提交。
    现在需要如下的代码贡献

    • 移动端自适应和响应式 (前端高手)
    • 检索结果的处理 (ElsaticSearch高手)
    • MarkDown的分析 (MarkDown和正则表达式高手)
    • 好的意见和建议 (每一个人的力量)

    (初版,所以可能会有错误信息,如果开发环境有任何问题,请在评论里告诉我,我会随时修改本文)

    开发环境的搭建

    1. ElasticSearch 2.2.1
      使用NEST操作ElasticSearch进行全文检索
      (使用默认的9200端口 全文检索和标签识别用 IK中文识别包)
      如何检验IK安装结果是否正确:
      启动ElasticSearch,然后在浏览器中访问链接
      http://localhost:9200/_analyze?analyzer=ik&pretty=true&text=我是中国人
      返回结果如下:我是中国人 的分词结果:
    {
      "tokens" : [ {
        "token" : "我",
        "start_offset" : 0,
        "end_offset" : 1,
        "type" : "CN_CHAR",
        "position" : 0
      }, {
        "token" : "中国人",
        "start_offset" : 2,
        "end_offset" : 5,
        "type" : "CN_WORD",
        "position" : 1
      }, {
        "token" : "中国",
        "start_offset" : 2,
        "end_offset" : 4,
        "type" : "CN_WORD",
        "position" : 2
      }, {
        "token" : "国人",
        "start_offset" : 3,
        "end_offset" : 5,
        "type" : "CN_WORD",
        "position" : 3
      } ]
    }
    

    2.MongoDB 3.2.4
    使用默认的28030端口。具体配置任意。
    MongoDB应用总结(C#)

    3.IDE
    由于使用了C#6的语法,ASP.NET MVC5框架,VisualStudio2015是推荐的IDE。

    项目结构

    • BlogDataSimulator 测试数据的模拟做成工具
    • BlogSystem 博客业务逻辑
    • CodeSnippet WebSite代码
    • Infrastructure.* 各种功能库

    关于web.config

    DEBUGMODE true 的时候,网站调试模式开启。
    Image:

    • Mongo:使用MongoDB保存图片
    • FileSystem : 使用文件系统图片
    • QiNiu : 使用七牛保存图片

    Github OAuth :Github 第三方验证用数据(敏感数据,测试时候不需要)
    QQ OAuth :QQ 第三方验证用数据(敏感数据,测试时候不需要)
    QiNiu Storage :七牛用数据(敏感数据,测试时候不需要)

    Search Method:全文检索方式

    • MongoTextSearch MongoDB 内置功能(不支持中文)
    • ElasticSearch

    源代码中,没有Web.config文件,而是WebConfig.dummy文件。请注意修改文件名称。

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=301880
      -->
    <configuration>
      <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    
        <add key="URLBASE" value="http://codesnippet.info" />
        <add key="DEBUGMODE" value="true" />
        <!--<add key="DEBUGMODE" value="false" />-->
    
        <!-- Image-->
        <!--<add key="Image" value="Mongo" />-->
        <add key="Image" value="FileSystem" />
        <!--<add key="Image" value="QiNiu" />-->
    
        <!-- Thumbnail -->
        <!--<add key="Thumbnail" value="Mongo" />-->
        <add key="Thumbnail" value="FileSystem" />
        <!--<add key="Thumbnail" value="QiNiu" />-->
    
        <!-- Github OAuth -->
        <add key="GITHUB:ClientSecret" value="123456" />
        <add key="GITHUB:ClientID" value="123456" />
        <add key="GITHUB:AppName" value="codesnippet" />
        <!-- QQ OAuth-->
        <add key="QQ:AppID" value="123456" />
        <add key="QQ:AppKey" value="123456"/>
        <add key="QQ:CallBack" value="http://www.codesnippet.info/Home/QQOAuth"/>
        <add key="QQ:AuthorizeURL" value="https://graph.qq.com/oauth2.0/authorize" />
    
        <!-- QiNiu Storage -->
        <add key="QINIU:AK" value="123456" />
        <add key="QINIU:SK" value="123456" />
        <add key="QINIU:BUCKET" value="gridfilesystem" />
        <add key="QINIU:URLBASE" value="123456" />
        <!-- Search Method -->
        <!--<add key="SearchMethod" value="MongoTextSearch" />-->
        <add key="SearchMethod" value="ElasticSearch" />
      </appSettings>
    </configuration>
    

    第一次启动 和 数据模拟器

    请确保MongoDB服务和ElasticSearch服务已经启动。
    整个系统是完成空的,为了有个直观的影响,请先做一些模拟数据。

    这里的模拟数据采集于博客园(www.cnblogs.com)
    BlogDataSimulator 项目的Sample文件夹中保存着这些数据
    Article.txt

    the article title is :"margin塌陷现象"div盒子嵌套盒子外边距合并现象 - goweb - 博客园
    the article title is :"拍牌神器"是怎样炼成的(二)--- 键鼠模拟之AutoIt - 鼻涕鱼 - 博客园
    the article title is :"拍牌神器"是怎样炼成的(三)---注册全局热键 - 鼻涕鱼 - 博客园
    the article title is :"拍牌神器"是怎样炼成的(一)--- 键鼠模拟之WinAPI - 鼻涕鱼 - 博客园
    the article title is :#001 博客园的 MarkDown 代码样式如何设置 - 那年、仲夏 - 博客园
    the article title is :#001 如何组织JS代码 - 那年、仲夏 - 博客园
    the article title is :#Linux学习笔记# 自定义shell终端提示符 - lienhua34 - 博客园
    the article title is :#VSTS 日志# TFS 2015 Update 1 发布 – Git和TFVC代码库可以混合使用了 - 北京的201个蓝天 - 博客园
    the article title is :#VSTS定制#全新的模版定制能力 - 北京的201个蓝天 - 博客园
    the article title is :#VSTS日志# TFS 2015 Update 2 RC2新功能 - 北京的201个蓝天 - 博客园
    the article title is :( 译、持续更新 ) JavaScript 上分小技巧(二) - 野兽' - 博客园
    the article title is :( 译、持续更新 ) JavaScript 上分小技巧(三) - 野兽' - 博客园
    the article title is :( 译、持续更新 ) JavaScript 上分小技巧(四) - 野兽' - 博客园
    the article title is :( 译、持续更新 ) JavaScript 上分小技巧(一) - 野兽' - 博客园
    the article title is :(9)分布式下的爬虫Scrapy应该如何做-关于ajax抓取的处理(一) - 爱吃猫的鱼 - 博客园
    the article title is :(C/C++)基于SharpUI控件库的插件式框架开发--第三篇框架基础服务库 - w.xp - 博客园
    the article title is :(Frontend Newbie)JavaScript基础之常见数据类型 - tbingooo - 博客园
    the article title is :(Frontend Newbie)JavaScript基础之函数 - tbingooo - 博客园
    the article title is :(Frontend Newbie)Web简史 - tbingooo - 博客园
    the article title is :(Frontend Newbie)Web三要素(二) - tbingooo - 博客园
    the article title is :(Frontend Newbie)Web三要素(三) - tbingooo - 博客园
    

    运行模拟程序之前,请确保MongoDB和ElasticSearch处于运行状态。

    根据需要选择模拟项目,一般是“全选”。
    后面的几个路径,请根据个人的开发环境进行修改。
    设定结束后,按下 初始化NEST 按钮(和ElasticSearch建立连接,一定要等到出现消息对话框才表示连接建立,大约 5-10秒)。
    按下模拟数据按钮,开始模拟数据的做成(根据数据量不同,耗费时间不同,最大耗时为20分钟)

    模拟程序将自动生成的用户

    • 第一个设定为管理员
    • 第二个设定为编辑
    • 剩余的随机分配为作者,编辑,普通
      (如果你使用DEBUGMODE启动网站,网站会出现模拟管理员登录,模拟编辑登陆,模拟普通用户登录,这三个按钮就对应了第一个,第二个,第三个用户)

    每个用户一个文集,所有文章在一个文集里面。所有的文章,被随机为首页,私有,审核状态也进行了各种随机处理。

    BUG的提交

    本项目使用 https://www.bugclose.com/ 进行BUG的内部管理。
    如果你发现BUG,可以在Github项目中提交Issue

  • 相关阅读:
    iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    iOS NSArray数组过滤
    App Store2016年最新审核规则
    iOS 根据字符串数目,自定义Label等控件的高度
    iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
    Entity FrameWork 增删查改的本质
    EF容器---代理类对象
    Entity FrameWork 延迟加载本质(二)
    Entity FrameWork 延迟加载的本质(一)
    Entity FrameWork 增删查改
  • 原文地址:https://www.cnblogs.com/TextEditor/p/5465905.html
Copyright © 2011-2022 走看看