我的架构:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0"
splitOnCaseChange="1" splitOnNumerics="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English"
protected="protwords.txt"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
我想要合作的组合:
"沃尔玛","沃尔玛","沃尔玛","沃尔玛","沃尔玛"
鉴于这些字符串中的任何一个,我想找到另一个字符串.
因此,有以下25种组合:
(第一列表示搜索的输入文本,第二列表示预期的匹配)
(Walmart,Walmart)
(Walmart,WalMart)
(Walmart,Wal Mart)
(Walmart,Wal-Mart)
(Walmart,Wal-mart)
(WalMart,Walmart)
(WalMart,WalMart)
(WalMart,Wal Mart)
(WalMart,Wal-Mart)
(WalMart,Wal-mart)
(Wal Mart,Walmart)
(Wal Mart,WalMart)
(Wal Mart,Wal Mart)
(Wal Mart,Wal-Mart)
(Wal Mart,Wal-mart)
(Wal-Mart,Walmart)
(Wal-Mart,WalMart)
(Wal-Mart,Wal Mart)
(Wal-Mart,Wal-Mart)
(Wal-Mart,Wal-mart)
(Wal-mart,Walmart)
(Wal-mart,WalMart)
(Wal-mart,Wal Mart)
(Wal-mart,Wal-Mart)
(Wal-mart,Wal-mart)
Run Code Online (Sandbox Code Playgroud)
我的架构的当前限制:
1. "Wal-Mart" -> "Walmart",
2. "Wal Mart" -> …Run Code Online (Sandbox Code Playgroud) 我看起来相当于http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#isBlank(java.lang.CharSequence) 我发现了几个第三方扩展,但是有一个开箱即用的下划线.js:http://underscorejs.org
我有一个扩展org.scalatest.junit.JUnitSuite的类.这堂课有几个考试.我不希望这些测试并行运行.
我知道使用Specs2是多么简单(使用Specification扩展类并在类中添加一行sequential),如下所示:如何按顺序运行规范.
我不想通过设置来改变Build文件:
parallelExecution in Test := false
我也不想使用标签按顺序运行特定的测试文件.
我想要的是确保我的类中的所有测试按顺序运行的方法.ScalaTest可以实现吗?任何样本测试/模板都表示赞赏.
一个快速的谷歌搜索指向我:http://doc.scalatest.org/2.0/index.html#org.scalatest.Sequential
对于我所进行的几项测试,我认为创建StepSuite是完全过分的.我不完全确定这是否适合我的情况!
谁能告诉我为什么存在这种限制?它与JVM或Scala编译器有关吗?
$ scala
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_79).
Type in expressions to have them evaluated.
Type :help for more information.
scala> def toText(ints: Int*, strings: String*) = ints.mkString("") + strings.mkString("")
<console>:7: error: *-parameter must come last
def toText(ints: Int*, strings: String*) = ints.mkString("") + strings.mkString("")
Run Code Online (Sandbox Code Playgroud) 我有一个DAO对象,我将其定义为案例类.
case class StudentDAO(id: Int) {
def getGPA: Double = // Expensive database lookup goes here
def getRank: Int = // Another expensive database operation and computation goes here
def getScoreCard: File = // Expensive file lookup goes here
}
Run Code Online (Sandbox Code Playgroud)
我自然会制作getGPA和getRank而getScoreCard def不是vals因为我不希望它们在被使用之前被计算出来.
如果我将这些方法标记为lazy vals而不是defs,会对性能产生什么影响?我想让它们成为lazy vals 的原因是:我不想每次为id为"i"的学生重新计算等级.
我希望这不会被标记为重复,因为有几个问题如下,主要是差异:
Scala中的`def` vs`val` vs`lazy val`评估
这个问题主要是针对朝费用(CPU与内存之间的权衡)在作出method一个lazy val昂贵的操作,什么会建议一个比其他?为什么?
编辑:感谢您对@ om-nom-nom的评论.我应该更清楚我正在寻找什么.
我在这里读到:
我有两个序列:
Seq("a" -> 1, "b" -> 2)
Seq("a" -> 3, "b" -> 4)
Run Code Online (Sandbox Code Playgroud)
我想要的是一个结果Map看起来像这样:
Map(a -> List(3, 1), b -> List(4, 2))
Run Code Online (Sandbox Code Playgroud)