<p>通常,当我们搜索时,我们有一个故事列表,我们提供一个搜索字符串,并期望返回一个给定搜索字符串与故事匹配的结果列表。在</p>
<p>我想做的恰恰相反。给出一个搜索字符串和一个故事的列表,找出哪个搜索字符串与该故事匹配。在</p>
<p>现在这可以用re来完成,但是这里的情况是我想使用solr支持的复杂搜索查询。<a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html" rel="nofollow noreferrer">query syntax here</a>的完整详细信息。注意:我不会使用boost。在</p>
<p>基本上,我想在下面的示例代码中为doesitmatch函数获取一些指针。在</p>
<pre><code>def doesitmatch(contents, searchstring):
"""
returns result of searching contents for searchstring (True or False)
"""
???????
???????
story = "big chunk of story 200 to 1000 words long"
searchstrings = ['sajal' , 'sajal AND "is a jerk"' , 'sajal kayan' , 'sajal AND (kayan OR bangkok OR Thailand OR ( webmaster AND python))' , 'bangkok']
matches = [[searchstr] for searchstr in searchstrings if doesitmatch(story, searchstr) ]
</code></pre>
<p><strong>编辑:</strong>此外,还想知道是否存在将如下lucene查询转换为正则表达式的模块:</p>
^{pr2}$