如何在Mark.JS中获得突出的突出显示?

时间:2018-07-16 20:04:37

标签: javascript php sphinx

我有几段代码:

PHP:

$conn = new PDO('mysql:host=ubuntu;port=9306;charset=utf8','','');
$query = $conn->quote($_GET['query']);
 $sql = "SELECT *,SNIPPET(content,$query) AS `snippet` FROM `test1` WHERE  MATCH($query)";

foreach ($conn->query($sql) as $info) {
     echo $info['snippet']. "<br><br>";
}

$_SESSION['phrase'] = $query; // Only 1 word here now (or phrase with space), while need in array.

和JS:

markInstance = new Mark(textCont);
markInstance.mark(phrase, {}); // from $_SESSION['phrase']
highlighted = [...textCont.querySelectorAll('mark')];
positions = highlighted.map(el => el.offsetTop);

我在摘要输出(摘录)中有几个不同的突出显示的单词。但是其中只有一个由Mark.JS突出显示。

我也想将所有已建立的词干也用作html文件中的突出显示词。我如何在Mark.js中使用Sphinx的词干分析结果?

1 个答案:

答案 0 :(得分:1)

好的,因此您需要以某种方式在Mark.js中实现词干支持。也许像 https://github.com/MarkKahn/stem作为灵感

...使用许多正则表达式,因此也许可以将它们作为mark.js中突出显示的规则表达式来实现。

(忘记狮身人面像这样的词干功能,不确定其直接用途(除非暗示其可能实现)。不能在mark.js中直接使用狮身人面像引擎)