30-awesome-codeigniter-tutorials-for-all-skill-levels
solr development detail concerns
[Solr分词顺序 ]Solr建立索引和对关键词进行查询都得对字串进行分词,在向索引库中添加全文检索类型的索引的时候,Solr会首先用空格进行分词,然后把分词结果依次使用指定的过滤器进行过滤,最后剩下的结果才会加入到索引库中以备查询。分词的顺序如下: 索引 1:空格whitespaceTokenize 2:过滤词StopFilter 3:拆字WordDelimiterFilter 4:小写过滤LowerCaseFilter 5:英文相近词EnglishPorterFilter 6:去除重复词RemoveDuplicatesTokenFilter 查询 1:查询相近词 2:过滤词 3:拆字 4:小写过滤 5:英文相近词 6:去除重复词 以上是针对英文,中文的除了空格,其他都类似
[Solr的检索运算符 ]
1. “:” 指定字段查指定值,如返回所有值*:*
2. “?” 表示单个任意字符的通配
3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
4. “~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8
The Instagram Architecture Facebook Bought for a Cool Billion Dollars
The Instagram team has written up what can be considered the canonical description of an early stage startup in this era: What Powers Instagram: Hundreds of Instances, Dozens of Technologies.
Teach a dog to rest
Restful API
a. Keep the simple things simple
b. We only need two URLs
For a collection: /dogs
For an element: /dogs/bo
c. Use plurals, nouns as good, verbs are bad, verbs as method: POST (create), GET (read), PUT (update), DELETE (delete)
/dogs?method=post
/dog
MongoDB transaction
http://www.infoq.com/presentations/Consistency-New-Generation-Databases
N+1 problem:
通过修改schema,使用嵌套,连接来代替join;
mongodb中可将数组作为查询条件;
caching to avoid n+1
--------------------------------
并发控制的实现: 乐观锁(加版本号字段) 和 悲观锁(事务, 分布式锁标记: memcached, redis, mongodb);
---------------------------------
事务和一致性: 其实我们担心的事务一致性问题,通常是因为某个程
JavaScript is now a necessity
JavaScript has long been the workhorse for implementing dynamic features in HTML. But there have always been two problems: browser incompatibilities, and the awkwardness of working directly with the DOM. The JQuery library has elegantly solved both problems, and is the basis for modern client-side browser development. But it’s not just JQuery. The Protovis and D3 libraries allow you to create complex interactive visualizations that run directly in the browser — for the first time, making the browser an important tool for data exploration.
The use of JavaScript has also exploded in databases. Three of the leading databases in the NoSQL movement, CouchDB, MongoDB, and Riak, are “document databases.” Rather than storing tables, they store documents. And for all three databases, a “document” means a JSON document, not a Word or Excel file. (Riak also supports XML documents and plain text.) While JSON has been widely adopted as a data exchange format (there are libraries for parsing JSON in almost all modern programming languages), it’s important to realize that JSON is really just a format for serializing JavaScript objects. So while you can use JSON with any language, it’s a natural fit for JavaScript development; and the fact that JSON has become a cross-language standard, rather than some Python, Ruby, or Java serialization format, says a lot about JavaScript’s readiness to take a role on a larger stage. But even more than that, all three of these databases have facilities for executing JavaScript as part of queries. In the coming years, I would not be the least surprised to see JavaScript and JSON embedded within other kinds of applications.
Java 汉字转拼音
Pinyin4j is a popular Java library supporting convertion between Chinese characters and most popular Pinyin systems. The output format of pinyin could be customized.


