小编gre*_*ell的帖子

递归嵌套jsonb结构的全文索引

可以说我有一本这样的书:

{ title: "Tis no book"
  chapter: 1,
  text: "Hello world this is a book chapter",
  subchapters: [
     {
     chapter: 1.1
     text: "Nested sub chapter"
     subchapters: [
       chapter: 1.1.1
       text: "Nested nested..."
       subchapters: [ ...etc...]
     },
     {
     chapter: 1.2
     text: "Nested sub chapter 2"
     subchapters: [ ...etc...]
     }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我可以使用postgres'9.4 new jsonb/gin(或其他任何东西)在"text"这个递归嵌套数据结构的字段上设置全文索引,以便可以通过文本搜索存储到数据库的书库(使用索引) )?

postgresql recursion

8
推荐指数
1
解决办法
2858
查看次数

全球分布式Neo4j的架构?

我正在为在世界48个国家设有办事处的组织做一些工作.从本质上讲,他们现在的工作方式是,他们都将数据存储在数据库的本地副本中,并将其复制到世界上所有地区/办事处.在奇怪的情况下,他们需要直接在伦敦服务器上的"开发副本"上工作,他们必须直接连接到伦敦服务器,无论他们在世界的哪个位置.

因此,我想说我希望有一个跨越整个组织的单个图形,它是分片的,这样每个区域都可以相对快速地读取图形.我担心写入会破坏性能.我知道写操作是通过一个主数据,这是否意味着全局只有一个主数据?也就是说,如果那位大师恰好在伦敦,那么每次从悉尼写入数据库都必须遍历该距离,而不管本地分片是什么?如果悉尼和伦敦被切断(无论出于何种原因)会怎样?

从本质上讲,Neo4j如何解决全球分销问题?

scaling distributed-system neo4j

7
推荐指数
1
解决办法
2442
查看次数

从gulp运行时在WebStorm中调试节点应用程序

我正在使用webstorm 10.0.2并使用bangular yeoman模板生成项目.我可以通过gulp窗口运行gulp命令,我可以在gulpfile.js它中设置一个断点,它会点击它,但我似乎无法让它在我的断点server.js

它看起来像gulp文件正在启动另一个实例,node因此当你从webstorm"调试"时,你只是在调试gulp.

我也试过使用另一个项目,yo hottowel但得到相同的东西 - 我无法通过webstorm调试实际的应用程序.

任何人都可以告诉我如何配置webstorm,以便我可以调试实际的服务器端节点代码,但仍然使用gulp构建工具?

node.js webstorm gulp

7
推荐指数
1
解决办法
991
查看次数

无法获取contentEditable中的空段落

我有一个contentEditable文章,带有"EmbeddedSection"div(递归),它们上面和下面都有一个段落.在chrome中,如果段落为空,则实际上无法实现.在IE中你可以,但大小都是错的.

http://jsfiddle.net/hE8zS/1/

<article contenteditable="true">
   <p><span class="numbering">Title</span><span class="TextChunk"></span></p>
   <div class="EmbeddedSection">
       <p><span class="numbering">1</span><span class="TextChunk">Section Title</span></p>   
       <div class="EmbeddedSection">
           <p><span class="numbering">1.1</span><span class="TextChunk">Embedded title</span></p>
           <p><span class="TextChunk">Th</span><span class="TextChunk">e </span><span class="TextChunk">.</span></p>
       </div>
       <p><span class="TextChunk"></span></p> <!--Can't get to this element-->
       <div class="EmbeddedSection">
           <p class="Paragraph"><span class="numbering">1.2</span><span class="TextChunk">Another title</span></p>
           <p class="Paragraph"><span class="TextChunk">Blah blah blah</span></p>
       </div>
       <p><span class="TextChunk">Can get here, but not the one above 1.2 in chrome (ie gets there).</span></p>
       <div class="EmbeddedSection">
           <p class="Paragraph"><span class="numbering">1.3</span><span class="TextChunk">Another title</span></p>
           <p class="Paragraph"><span class="TextChunk">Blah blah blah</span></p>
        </div>
        <p><span class="TextChunk"></span></p> <!--Can't get to this element--> …
Run Code Online (Sandbox Code Playgroud)

javascript css html5 contenteditable

4
推荐指数
1
解决办法
2810
查看次数

std容器是否总是在多线程环境中抛出异常?

像std :: vector && friends(我实际上是在使用QList)这样的容器会抛出一个可捕获的异常,或者如果一个线程在另一个线程正在读取它时尝试写入容器,那么它是否是未定义的行为:

std::vector<std::string> stuff;
Run Code Online (Sandbox Code Playgroud)

另一个线程中的非关键任务(例如拼写检查):

try {
    for (std::string& s : stuff) {
        //do stuff with s
    }
} catch (...) {  // Handle all exceptions
    //bail out of task
}
Run Code Online (Sandbox Code Playgroud)

主线程:

stuff.erase(std::remove(someIterator), stuff.end()); 
Run Code Online (Sandbox Code Playgroud)

所以你可以看到这里会有一个场景,它可能会有一个无效的迭代器,并且会在读取线程中抛出异常 - 这将被捕获并且只是从任务中解脱出来.

但这只是一种情况 - 我可以依赖从这些容器中抛出可捕获的异常,这样我就不需要使用互斥锁保护向量或字符串了吗?或者是否会有一些情况可以解除引用nullptr(或其他东西)并导致SEH异常 - 即我无法捕获并继续的东西.我认为答案是它可能依赖于实现,并且最有可能导致未定义的行为,但我想我会问这个问题.

c++ containers exception std

2
推荐指数
1
解决办法
103
查看次数

在C++/STL中解决容器协方差问题

首先让我们从问题开始.我有一棵树,我想做以下事情:

class Base {
    std::vector<Base*> children_;
};

class DerivedA : public Base {
    //adds some members
};

class DerivedB : public Base {
    void AddChildren(std::vector<DerivedA*> children, int position) {
        //Do stuff based on the fact that it's a DerivedA
        //Add to the list of children_ 
    }
    void AddChildren(std::vector<DerivedB*> children, int position) {
        //Do stuff based on the fact that it's a DerivedB
        //Add to the list of children_ 
    }
};
Run Code Online (Sandbox Code Playgroud)

我遇到了容器协方差问题 - 一个std::vector<DerivedA*>(或DerivedB*)与a不一样std::vector<Base*>.但与此同时,我不想创建一个全新的向量,AddChildren …

c++ containers stl covariance c++11

1
推荐指数
1
解决办法
619
查看次数